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>
  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue是一种流行的JavaScript框架,用于构建用户界面。采用了组化的开发方式,使得前端发更加模块化和可维护。而Ajax是一种用于在后台与服务器进行异步信的技术,可以在不刷新整页面的情况下更新部分页面内容。 在VueAjax请求可以通过使用Vue的内置方法或者第三方库来实现。Vue内置了一个名为`axios`的库,它是一个基于Promise的HTTP客户端,可以用于发送Ajax请求。 以下是使用axios发送Ajax请求的基本步骤: 1. 首先,在你的项目中安装axios库。可以使用npm或者yarn命令进行安装:`npm install axios`或者`yarn add axios`。 2. 在需要发送Ajax请求的组件中,引入axios库:`import axios from 'axios'`。 3. 使用axios发送请求,可以通过调用axios的各种方法(如get、post等)来发送不同类型的请求。例如,发送一个GET请求可以使用`axios.get(url)`方法。 4. 处理请求的响应,axios返回的是一个Promise对象,你可以使用`.then()`方法来处理成功的响应,使用`.catch()`方法来处理错误的响应。 下面是一个简单的示例代码,演示了如何在Vue中使用axios发送GET请求: ```javascript import axios from 'axios'; export default { methods: { fetchData() { axios.get('https://api.example.com/data') .then(response => { // 处理成功的响应 console.log(response.data); }) .catch(error => { // 处理错误的响应 console.error(error); }); } } } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值