跨域请求的深入剖析

ajax跨域完全讲解:

什么是跨域问题?

就是在前台调用后台服务接口的时候,如果这个接口不是同一个域的,就会产生跨域问题。

产生跨域问题的原因?(安全的原因)

(1)浏览器的限制(跟服务器后台本身并没有任何关系)。

(2)跨域(发出去的请求不是本域名的,比如说域名,端口,协议,任何一个不一样,都会产生跨域问题)。

(3)xhr(发出的请求是XmlHttpRequest,请求)。


解决思路:

浏览器限制(只要有办法让浏览器不去做这个限制,就不会有跨域问题,实际上我们可以;有指定参数,让浏览器不去校验,那么这个跨域问题就解决了,但是意义不大,因为只要想跨域,客户端每个人都要做改动。)。。

XHR(只要发出去的请求不是xmlhttprequest就可以了,就算是跨域的,浏览器也不会报跨域安全问题。基于这个思路我们的方法是【jsonp,通过动态的创建了一个javascript,在javascript发出了一个动态请求,】

 跨域(第一种:【被调用方修改代码,支持跨域,基于http协议,关于跨域方要求来做的修改,也就是说a域名调用b域名的时候,在b域名返回的信息里面加入一些信息字段,告诉a域名,允许被调用,和校验,那么就不会有跨域问题了,那么如果被调用方不是自己工司的,无法取得参数】。那就是第二个思路了【调用方做修改,隐藏跨域,通过一个代理。从浏览器发出去的都是a域名的请求,在代理里面,吧指定的url转到b域名里面,在浏览器看上去,他就是同一个域的,就没有跨域的问题了】)。


如何不让浏览器不做跨域限制:

(跨域问题是前台浏览器做的校验,后台服务器是没有限制的。命令行输入。。。比如谷歌,chrome --disable-web-security --user-data-dir-g:\temp3 作用是禁止他做校验)。


jsonp如何解决跨域:

jsonp是json的一种补充使用方式,他不是一种官方协议。主要是利用script标签,请求资源何以跨域,变通的一种方案。(动态的创建javascript,请求资源,解决跨域)。

使用jsonp后台也是需要改动的。

jsonp的实现原理(正常跨域请求的类型type是xhr,而jsonp的请求类型是script。因此不会做校验,可以解决跨域问题,第二个是返回的类型,普通的ajax请求里面返回的是json对象,而jsonp返回的是json脚本。第三个区别是就是请求的url,url中自动的加入了一长串的字符串,有个字段为callback,后台只要发现有callback参数,就会认为是jsonp请求。返回的数据就会由json转为javascript,从而解决跨域。)。


带cookie的跨域:


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值