ajax跨域请求

跨域问题
JS处于安全考虑使用了同源策略

Under the policy, a web browser permits scripts contained in a first web page to access data in a second web page, but only if both web pages have the same origin. An origin is defined as a combination of URI scheme, hostname, and port number.

就是说,使用同源策略的时候若一个页面请求另外一个页面的数据,就要保证这两个页面同源。同源的标准是同一协议,同一域名,同一端口

这里写图片描述

跨域方式

JSONP

在JS中,标签中包含src属性的都是可以跨域的。所以可以通过动态生成<script>标签进行跨域请求。
方式如下
这里写图片描述

但是JSONP**只支持GET请求以及Javascript的返回类型。**

CORS

文章:http://www.ruanyifeng.com/blog/2016/04/cors.html
原理就是浏览器在发送请求时会添加一个Origin头部,用来说明本次请求来自哪个源(协议 + 域名 + 端口)。
若服务端允许该请求,就会发送一个Access-Control-Allow-Origin,用于指示来自允许来自哪个域名的请求。
CORS跨域都是浏览器自动添加头部信息的,基本不要写上什么特定的信息。
COR分简单请求非简单请求

简单请求

这里写图片描述
可以看到简单请求只能是GET、POST、HEAD且不能有自定义的头部信息。

非简单请求

非简单请求的CORS请求,会在正式通信之前,增加一次HTTP查询请求,称为”预检”请求(preflight)。
浏览器先询问服务器,当前网页所在的域名是否在服务器的许可名单之中,以及可以使用哪些HTTP动词和头信息字段。只有得到肯定答复,浏览器才会发出正式的XMLHttpRequest请求,否则就报错。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值