cors跨域,属于ajax中的一部分

简单方法解决跨域
cors》》解决跨域的2中方法:
一种是ajax中的json.p,且这个只能是get请求;
 
下面是第二种,加响应头即可,且这里get和post请求都能发。
 
这是第二个项目没法访问第一个人接口的时候,在这里面加上这个响应头,就是把第一个人网址的前面部分放到这里,然后第二个人就能正常访问了,就能正常用这个接口了

这个后面输入逗号,再放入另一个网址,那么就表示两个网址都能访问了。(后面可以放多个网址,还可放个*,表示所有的)

 

这里放入两个网址,就是允许两个网站进行跨域了,意思是均可访问

这里,表示浏览器允许结果返回的
以后网站会很多,所以这里放个星号,表示任何浏览器过来都能访问》》(比上面的更省事)

 

上面的是简单的请求,下面的是复杂请求(带请求头的就是复杂请求)
如果这里项目进行修改了,html中加了响应头,且这里是options方法

html中的代码

 
这是允许K1请求头的,并且这个星号也得加上;》》》
第一个方框obj后面的东西是固定的,可从老师的博客中看,k1表示请求头允许;下面的* 表示域名也是允许的
 

http://www.cnblogs.com/wupeiqi/articles/5703697.html   银角博客,可细看

 

ps:
    用了不寻常的方法,有时候methods不同,也会造成复杂请求,这就需要加一个这个

eg 》》这里一put为例子,这就可以能访问了,这只了不同方法的类型之后,用不同的方法也能进行访问了

怎么就是复杂请求,或者就是简单请求了呢,,请看规则》》看区别;

遇到复杂请求(就是多个请求的时候,记得把简单请求的方式以及复杂请求的方式,都放在这里,然后即可完成跨域)

 
 
最后: 这样我们就省略很多写函数的,记得把写的那个md中间件放入这个里面,代码如下》》
上面讲的代码只是我们这么讲课这么写,以后做这个的话,最终最好放在中间件里面,因为请求来都走中间件,其里面有response对象,这个response就是我们返回的这个对象
应用:在django中间件中实现cors做跨域
 
class CORS(object):


def process_response(self,request,response):
if request.method == 'OPTIONS':
response['Access-Control-Allow-Origin'] = '*'
response['Access-Control-Allow-Methods'] = 'PUT,DELETE'
response['Access-Control-Allow-Headers'] = 'k1'
return response
else:
response['Access-Control-Allow-Origin'] = '*'
return response
 应用.模块.类名    ;把这个放到中间件中就行了,自己根据我们所需放到中间件的某个位置

 

 
 
 
 
 
 

 

posted @ 2018-04-15 17:15  Heartbreak-Utopia  阅读(936)  评论(0编辑  收藏  举报