Vue 发送Ajax请求多种方式

news/2024/7/7 21:03:15

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>

http://lihuaxi.xjx100.cn/news/2122481.html

相关文章

小红书矩阵批量发布工具,一键发布笔记软件

昨日&#xff0c;我收到了一条充满渴望与期待的私信&#xff0c;来自一位小红书的矩阵账号博主。他手握多个账号&#xff0c;渴望寻找一款能够助力他批量发布笔记的神器&#xff0c;每日能够轻松达到百篇的发布量。这份迫切的需求&#xff0c;我深感体会&#xff0c;因为这正是…

【链表】Leetcode 146. LRU 缓存【中等】

LRU 缓存 请你设计并实现一个满足 LRU (最近最少使用) 缓存 约束的数据结构。 实现 LRUCache 类&#xff1a; LRUCache(int capacity) 以 正整数 作为容量 capacity 初始化 LRU 缓存int get(int key) 如果关键字 key 存在于缓存中&#xff0c;则返回关键字的值&#xff0c;否…

再次度过我的创作纪念日

机缘 写博客的机缘巧合已经在上一篇博客中写到了&#xff0c;至于收获和成就也不一一赘述了。想和大家聊的呢就这最近这一年左右的经历吧 日常 自从2022年开始&#xff0c;入职了一家大型的项目外派公司&#xff0c;名字就不说了。开始了我的保险公司系统的开发工作。工作地点…

AI论文速读 | 具有时间动态的路网语义增强表示学习

论文标题&#xff1a; Semantic-Enhanced Representation Learning for Road Networks with Temporal Dynamics 作者&#xff1a; Yile Chen&#xff08;陈亦乐&#xff09; ; Xiucheng Li&#xff08;李修成&#xff09;; Gao Cong&#xff08;丛高&#xff09; ; Zhifeng Ba…

数据库SQLSever——数据查询

一、无条件查询 查询表的所有信息 SELECT * FROM 表名 例&#xff1a;查询学生表 SELECT * FROM student087 二、根据列名查询 根据列名查询表信息 SELECT [列名],[列名],.... FROM 表名 例&#xff1a;查询学生表的学生学号和姓名 SELECT SNO&#xff0c;SNAME FROM STU…

水泵干转检测

水泵干转检测是指在水泵工作时&#xff0c;监测水泵的运行状态&#xff0c;以便及时发现水泵出现干转&#xff08;也称为空转&#xff09;的情况。水泵干转是指水泵在没有输送液体的情况下运行&#xff0c;这可能会导致水泵叶轮、机械密封等部件损坏&#xff0c;甚至引起火灾等…

Android开发简易登录界面

title: Android开发第四天 search: 2024-03-22 tags: Android开发 Android开发简易登录界面 文章目录 Android开发简易登录界面一、定义style样式二、完成 activity_main.xml 界面具体设计三、代码简述 背景 &#xff1a;在初学 android 开发的时候&#xff0c;为了尽量熟悉学…

【每日跟读】常用英语500句(1~100)

【每日跟读】常用英语500句 What’s up? 怎么啦&#xff1f; I see. 我明白 Shut up. 闭嘴 Not bad. 还不错 I’ll do my best. 我会尽全力 Take it easy. 放轻松 On my way. 马上来 Are you serious? 你是认真的吗&#xff1f; See you later. 待会见 Good job. 做…