介绍
这篇文章给大家分享的是有关django实现跨域请求的方法有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。
歌珥即交叉起源资源共享跨域资源共享。
跨域请求分两种:简单请求,复杂请求。
<强>简单请求强>
简单请求必须满足下述条件。
HTTP方法为这三种方法之一:头,得到文章
HTTP头消息不超出以下字段:
接受,接收语言,内容语言,Last-Event-ID
且内容类型只能为下列类型中的某一个:
应用程序/x-www-from-urlencodedmultipart/form-datatext平原。
==任何不满足上述要求的请求,都会被认为是复杂请求。
<强>复杂请求强>
会先发出一个预请求——预检,选项请求。==
浏览器的同源策略
无法跨域就是被浏览器的同源策略限制的。
也就是说,==浏览器会阻止非同源的请求。==
那什么是非同源呢?==域名或端口不同的,都属于非同源。==
==浏览器只会阻止表单以及Ajax请求的跨域,但不会阻止src请求跨域。==
所以,我们的cdn,图片等src请求都是正常的。
JsonP实现跨域
==JsonP跨域的原理是利用了浏览器不阻止src请求跨域来实现的。==
==JsonP只能实现得到请求跨域。==
首先准备我们的视图文件
得到django.http import HttpResponse 得到rest_framework.views import  APIView class TestView (APIView): def 才能得到(自我,,请求): ,,,return HttpResponse (“handlerResponse (& # 39; is 好# 39;)“) ,,,#,注意返回的函数以及参数的格式
然后html文件
& lt; ! DOCTYPE html> & lt; html> & lt; head> & lt;才能title> JsonP跨站请求测试& lt;/title> & lt;/head> & lt; body> & lt; script>//才能,函数名应为handlerResponse,这是一种约定俗成 function 才能handlerResponse(数据),{ ,,,警报(数据) ,,} & lt;/script> & lt; !——必须放在被执行函数的脚本标签的下面,否则会报错函数不存在,在 https://www.yisu.com/zixun/& lt; script  src=" http://127.0.0.1:8000/测试/"> 脚本> 身体>