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

编辑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)

你可能感兴趣的:(Vue,Django前后端分离,开发Openstack(五)Django,Vue前后端交互方法)