Django配置跨域并開(kāi)發(fā)測(cè)試接口
1.跨域原理
1. 首先瀏覽器安全策略限制js ajax跨域訪問(wèn)服務(wù)器
2. 如果服務(wù)器返回的頭部信息中有當(dāng)前域:
// 允許 http://localhost:8080 這個(gè)網(wǎng)站打開(kāi)的頁(yè)面中的js訪問(wèn)我Access-Control-Allow-Origin: http://localhost:8080// 允許攜帶cookie訪問(wèn)我Access-Control-Allow-Credentials: true
那么, 瀏覽器可以讓js 請(qǐng)求該服務(wù)器
2.django cors設(shè)置:
1. 安裝包pip install django-cors-headers2. 注冊(cè)應(yīng)用INSTALLED_APPS = [...# 添加 django-cors-headers 使其可以進(jìn)行 cors 跨域’corsheaders’]3. 添加中間件MIDDLEWARE = [# 放在中間件第一個(gè)’corsheaders.middleware.CorsMiddleware’,...]4. 設(shè)置# CORS跨域請(qǐng)求白名單設(shè)置CORS_ORIGIN_WHITELIST = (’http://127.0.0.1:8080’,’http://localhost:8080’,)CORS_ALLOW_CREDENTIALS = True # 允許攜帶cookie
3.登錄接口測(cè)試
3.1 user/usrs.py 中配置路由
urlpatterns = [path(’login/’, views.login),]
3.2 user/views.py 中寫一個(gè)login視圖函數(shù)
from django.http import JsonResponseimport jsondef login(request):body_dict = json.loads( request.body )print(body_dict,8888888)name = body_dict.get(’name’)pwd = body_dict.get(’pwd’)if not all([name, pwd]):resp = {'code': 1001,'msg': ’信息不全’}return JsonResponse(resp)if name == ’zhangsan’ and pwd == ’123456’:resp = {'code': 0,'msg': ’登錄成功’,'data': {'id': 1,'name': ’張三’,'age': 18}}return JsonResponse(resp)return JsonResponse({'code': 1002,'msg': ’驗(yàn)證失敗’})
3.3 測(cè)試接口
1http://192.168.56.100:8888/user/login/
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. asp中將字符串轉(zhuǎn)數(shù)字的函數(shù)小結(jié)2. AJAX實(shí)現(xiàn)省市縣三級(jí)聯(lián)動(dòng)效果3. python mysql項(xiàng)目實(shí)戰(zhàn)及框架搭建過(guò)程4. 解析原生JS getComputedStyle5. JSP實(shí)現(xiàn)簡(jiǎn)單網(wǎng)頁(yè)計(jì)算器6. Python基于數(shù)列實(shí)現(xiàn)購(gòu)物車程序過(guò)程詳解7. ASP強(qiáng)制刷新網(wǎng)頁(yè)和判斷文件地址實(shí)例代碼8. 學(xué)習(xí)小實(shí)例--滾動(dòng)條的簡(jiǎn)單實(shí)現(xiàn)9. 移動(dòng)端HTML5實(shí)現(xiàn)拍照功能的兩種方法10. 完美實(shí)現(xiàn)CSS垂直居中的11種方法
