当前位置:   article > 正文

Vue 发送Ajax请求多种方式

Vue 发送Ajax请求多种方式

1. 发送ajax请求的方式

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

2. 方案一

  • 后端视图函数
  1. from rest_framework.viewsets import ViewSet
  2. from rest_framework.response import Response
  3. class Index(ViewSet):
  4. def index(self, request):
  5. res = Response({'name': 'xwx', 'age': 123})
  6. res['Access-Control-Allow-Origin'] = '*'
  7. return res

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

  • 后端路由
  1. from django.contrib import admin
  2. from django.urls import path
  3. from app01 import views
  4. urlpatterns = [
  5. path('admin/', admin.site.urls),
  6. path('index/', views.Index.as_view({'get': 'index'})),
  7. ]
  • 前端发送 Ajax
  1. <div id="app">
  2. <p><button @click="func">点我向后端发请求,获取用户信息</button></p>
  3. <p>用户名:{{ name }}</p>
  4. <p>年龄是:{{ age }}</p>
  5. </div>
  6. <script>
  7. new Vue({
  8. el: '#app',
  9. data: {
  10. name: '',
  11. age: '',
  12. },
  13. methods: {
  14. func() {
  15. $.ajax({
  16. 'url': 'http://127.0.0.1:8000/index/',
  17. 'type': 'get',
  18. success: data => {
  19. console.log(data)
  20. this.name = data.name
  21. this.age = data.age
  22. }
  23. })
  24. }
  25. },
  26. })
  27. </script>

3. 方案二

  • 前端发送Ajax请求
  1. <div id="app">
  2. <p>
  3. <button @click="func">点我向后端发请求,获取用户信息</button>
  4. </p>
  5. <p>用户名:{{ name }}</p>
  6. <p>年龄是:{{ age }}</p>
  7. </div>
  8. <script>
  9. new Vue({
  10. el: '#app',
  11. data: {
  12. name: '',
  13. age: '',
  14. },
  15. methods: {
  16. func() {
  17. fetch('http://127.0.0.1:8000/index/').then(res => res.json()).then(res => {
  18. console.log(res)
  19. this.name = res.name
  20. this.age = res.age
  21. })
  22. },
  23. }
  24. })
  25. </script>

4. 方案四

  • 前端发送Ajax请求
  1. <div id="app">
  2. <p>
  3. <button @click="func">点我向后端发请求,获取用户信息</button>
  4. </p>
  5. <p>用户名:{{ name }}</p>
  6. <p>年龄是:{{ age }}</p>
  7. </div>
  8. <script>
  9. new Vue({
  10. el: '#app',
  11. data: {
  12. name: '',
  13. age: '',
  14. },
  15. methods: {
  16. func() {
  17. axios.get('http://127.0.0.1:8000/index/').then(res => {
  18. console.log(res.data)
  19. this.name = res.data.name
  20. this.age = res.data.age
  21. })
  22. },
  23. }
  24. })
  25. </script>
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/336247
推荐阅读
相关标签
  

闽ICP备14008679号