Vue,Django前后端分离,开发Openstack(五)Django,Vue前后端交互方法

1. Vue前端请求数据方法

this.$ajax.post('/api/login', this.qs.stringify(this.validateForm)).then( res => { if (res.data.status == 0) { this.dialogVisible = false; window.location.reload() } }).catch( res => {})

  • this.$ajax,这个是在main.js中已经声明了的
  • 在上节Vue跨域设置中,将/api替代了http://127.0.0.1:8081/horizon
  • this.qs.stringify,qs已经在main.js中声明了,这条语句将json格式的内容封装成表单格式,发送给后端,如果不这样做,后端收不到要提交的内容。
2. 后端django接收数据方法
@csrf_exempt def login(request): username = request.POST.get('username') user_domain_name = request.POST.get('domain') password = request.POST.get('password')

@csrf_exempt这个必须要有,否则跨域不了
  • 暴露出url
【Vue,Django前后端分离,开发Openstack(五)Django,Vue前后端交互方法】编辑horizon/urls.py加入url
from django.urls import path from . import views urlpatterns = [ path('', views.index, name='index'), path('login',views.login, name='login'), ]

注意: 下一节内容:django调用openstack api(keystone)

    推荐阅读