Vue 发送Ajax请求多种方式

1. 发送ajax请求的方式

  • 方案一:jq 的ajax(在 vue 中不推荐同时使用)
  • 方案二:js 原始官方 fetch方法
  • 方案三:axios 第三方

2. 方案一

  • 后端视图函数
from rest_framework.viewsets import ViewSet
from rest_framework.response import Response


class Index(ViewSet):
    def index(self, request):
        res = Response({'name': 'xwx', 'age': 123})
        res['Access-Control-Allow-Origin'] = '*'
        return res

需要注意的是,需要添加 Access-Control-Allow-Origin 在请求头

  • 后端路由
from django.contrib import admin
from django.urls import path
from app01 import views

urlpatterns = [
    path('admin/', admin.site.urls),
    path('index/', views.Index.as_view({'get': 'index'})),
]
  • 前端发送 Ajax
<div id="app">
    <p><button @click="func">点我向后端发请求,获取用户信息</button></p>
    <p>用户名:{{ name }}</p>
    <p>年龄是:{{ age }}</p>
</div>

<script>
    new Vue({
        el: '#app',
        data: {
            name: '',
            age: '',
        },
        methods: {
            func() {
                $.ajax({
                    'url': 'http://127.0.0.1:8000/index/',
                    'type': 'get',
                    success: data => {
                        console.log(data)
                        this.name = data.name
                        this.age = data.age
                    }
                })
            }
        },
    })
</script>

3. 方案二

  • 前端发送Ajax请求
<div id="app">
    <p>
        <button @click="func">点我向后端发请求,获取用户信息</button>
    </p>
    <p>用户名:{{ name }}</p>
    <p>年龄是:{{ age }}</p>
</div>

<script>
    new Vue({
        el: '#app',
        data: {
            name: '',
            age: '',
        },
        methods: {
            func() {
                fetch('http://127.0.0.1:8000/index/').then(res => res.json()).then(res => {
                    console.log(res)
                    this.name = res.name
                    this.age = res.age
                })
            },
        }
    })
</script>

4. 方案四

  • 前端发送Ajax请求
<div id="app">
    <p>
        <button @click="func">点我向后端发请求,获取用户信息</button>
    </p>
    <p>用户名:{{ name }}</p>
    <p>年龄是:{{ age }}</p>
</div>

<script>
    new Vue({
        el: '#app',
        data: {
            name: '',
            age: '',
        },
        methods: {
            func() {
                axios.get('http://127.0.0.1:8000/index/').then(res => {
                    console.log(res.data)
                    this.name = res.data.name
                    this.age = res.data.age
                })
            },
        }
    })
</script>

相关推荐

  1. Ajax请求方式

    2024-03-26 06:06:13       32 阅读
  2. DELETE 请求,如何通过ajax进行发送

    2024-03-26 06:06:13       63 阅读
  3. Ajax常见请求方法(详细)

    2024-03-26 06:06:13       69 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-26 06:06:13       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-26 06:06:13       101 阅读
  3. 在Django里面运行非项目文件

    2024-03-26 06:06:13       82 阅读
  4. Python语言-面向对象

    2024-03-26 06:06:13       91 阅读

热门阅读

  1. mybatisplus如何拼接动态sql

    2024-03-26 06:06:13       44 阅读
  2. macOS - 安装 b2 (Jamfile)

    2024-03-26 06:06:13       41 阅读
  3. ffmpeg把一个平面视频,做成左右平面视频

    2024-03-26 06:06:13       41 阅读
  4. ffmpeg重点之时间戳,PTS、DTS、time_base

    2024-03-26 06:06:13       37 阅读
  5. 【电脑装机】笔记本开机启动快捷键汇总

    2024-03-26 06:06:13       38 阅读
  6. centOS校准服务器时间

    2024-03-26 06:06:13       42 阅读
  7. C语言多服务器多播组网框架

    2024-03-26 06:06:13       43 阅读