Javascript跨域请求的4种解决方式_javascript技巧
程序员文章站
2022-04-14 21:05:04
...
什么情况下才会出现跨域?
假设域名是:http://www.example.com.cn/
如果所请求的域名跟这个域名不致,这种情况就是跨域,由于跨域存在漏洞,所以一般来说正常的跨域请求方式是请求不到的。
解决方式:
一、window.name
1、 服务器返回
2、定义一个iframe,添加onload事件
3、定义一个form,设置form的target为iframe的id,然后提交form
二、JSONP
服务器返回 callback({"id": "3", "name": "leisure"});
三、jQuery.getJSON
服务器返回 json格式数据 test({"id": "3", "name": "leisure"}); test函数名为callback参数中定义
$.getJSON(url + "?callback=?", data, function(data) {
}
注意callback=?这个参数必须带上,jquery会自动生成一个函数名替换这个问号!jQuery.getJSON实际上是用了JSONP方式实现。
四、flash跨域
服务器添加crossdomain.xml
http://www.example.com.cn/crossdomain.xml
假设域名是:http://www.example.com.cn/
如果所请求的域名跟这个域名不致,这种情况就是跨域,由于跨域存在漏洞,所以一般来说正常的跨域请求方式是请求不到的。
解决方式:
一、window.name
1、 服务器返回
复制代码 代码如下:
2、定义一个iframe,添加onload事件
3、定义一个form,设置form的target为iframe的id,然后提交form
复制代码 代码如下:
二、JSONP
服务器返回 callback({"id": "3", "name": "leisure"});
复制代码 代码如下:
三、jQuery.getJSON
服务器返回 json格式数据 test({"id": "3", "name": "leisure"}); test函数名为callback参数中定义
复制代码 代码如下:
$.getJSON(url + "?callback=?", data, function(data) {
}
注意callback=?这个参数必须带上,jquery会自动生成一个函数名替换这个问号!jQuery.getJSON实际上是用了JSONP方式实现。
四、flash跨域
服务器添加crossdomain.xml
http://www.example.com.cn/crossdomain.xml
复制代码 代码如下:
上一篇: HTML文件路径有哪些类型
推荐阅读
-
JavaScript中的HTTP跨域请求
-
javascript在父窗口iframe跨域操作子元素无法绑定子域下的function的解决办法 jquerybindlivedelegateiframe
-
JavaScript 跨域访问的问题和解决过程
-
ASP.NET开发web应用遇到的javascript跨域请求问题
-
JavaScript中跨域调用Flash的方法_javascript技巧
-
JavaScript中的HTTP跨域请求
-
javascript跨域原因以及解决方案分享_javascript技巧
-
JavaScript使用HTML5的window.postMessage实现跨域通信例子_javascript技巧
-
关于javascript中跨域问题的解决办法分享
-
在Ajax中使用Flash实现跨域数据读取的实现方法_javascript技巧