跨域请求(跨域请求的三种方法)
大家好,今天就和毛毛一起来看看这个问题吧 。跨域请求的三种方法,跨域请求很多人还不知道,现在让我们一起来看看吧!
1、 跨域3360浏览器限制javascript的同源策略。比如a.cn下的js在b.cn不能调用js、对象或数据(因为a.cn和b.cn是不同的域),所以出现了跨域。
2、 上面提到的同域是什么概念?简单解释就是同一个域名,同一个端口,同一个协议。
3、 同源策略:请求的url地址必须与浏览器上的url地址在同一个域内,即域名、端口、协议相同。
4、 例如,3360,我的本地域名是study.cn,我请求另一个数据域名。
5、 方法一:基于脚本标签的跨域实现。
6、 比如3360,我在http://study.cn/json/jsonp/jsonp_2.html.下请求了一个远程js文件
7、 远程message.js文件是
8、 这时候我们得到的对应表头是:
9、 这样就实现了跨域成功,因为当服务器返回数据时,这个回调参数(message)会作为函数名来包装JSON数据,这样客户端就可以随意自定义自己的函数来自动处理返回的数据。
10、 方法二:基于脚本标签的跨域实现。
11、 让远程js知道它应该调用的本地函数的名字,只要动态生成服务器提供的js脚本,这样前台只需要发一个回调参数告诉服务器我需要XXX代码,服务器就会得到对应的。
12、 例如,在http://study.cn/json/jsonp/jsonp_3.html页面上请求3358192 . 168 . 31 . 137/train/test/jsonphone。
13、 得到的响应头是:
14、 方法三:基于jquery的跨域。
15、 那么如何使用jquery来实现我们的跨域呢?Jquery封装了跨域ajax,而且封装的非常好,用起来非常方便。
16、 如果是一般的ajax请求3360
17、 那么浏览器中将会报告错误:
18、 jsonp形式的Ajax请求3360和参数通过get请求的方式传入。注意,的跨域请求只能是get请求,不能是post请求。
19、 参数名(默认为:回调)由jsonp传递给请求处理程序或页面,以获取jsonp回调函数的名称。jsonp回调定义的jsonp回调函数名默认是jQuery自动生成的随机函数名。
20、 查看请求头和相应的头。
21、 请求头:jquery会自动带入回调参数,当服务器得到这个参数时,就会返回。(响应标题)
22、 以上是跨域请求的方法。
这篇文章到此就结束,希望能帮助到大家。
扫描二维码推送至手机访问。
版权声明:文章内容摘自网络,如果无意之中侵犯了您的版权,请联系本站,本站将在3个工作日内删除。谢谢!