Javascript跨域请求的几种解决方法
来源:互联网 发布:软件黑客联系方式 编辑:程序博客网 时间:2024/05/17 00:02
Javascript跨域请求的几种解决方法
什么情况下才会出现跨域?
假设域名是:http://www.example.com.cn/
如果所请求的域名跟这个域名不致,这种情况就是跨域,由于跨域存在漏洞,所以一般来说正常的跨域请求方式是请求不到的。
解决方式:
一、window.name
1、 服务器返回<script>window.name='{"id":"3", "name":"leisure"}';</script>
2、定义一个iframe,添加onload事件 <iframe id="iframe1" onload="iLoad"><iframe>
<script type="text/javascript">
var load = false;
var load = false;
function iLoad() {
if(load == false) {
// 同域处理,请求后会再次重新加载iframe
// 同域处理,请求后会再次重新加载iframe
document.getElementById('iframe1').contentWindow.location = '/';
load = true;
} else {
// 获取window.name的内容,注意必须进行同域处理后方可访问!
// 获取window.name的内容,注意必须进行同域处理后方可访问!
var data = document.getElementById('iframe1').contentWindow.name;
alert(data); // {"id":"3", "name":"leisure"}
load = false;
load = false;
}
}
</script>
3、定义一个form,设置form的target为iframe的id,然后提交form
<form action="url" method="POST" target="iframe1">
<button type="submit" value="submit" />
</form>
</form>
二、JSONP
服务器返回 callback({"id": "3", "name": "leisure"});
<script type="text/javascript">
function callback(data) {
alert(data);
}
</script>
服务器返回 callback({"id": "3", "name": "leisure"});
<script type="text/javascript">
function callback(data) {
alert(data);
}
</script>
<script type="text/javascript" src="http://www.example.com.cn/product.jsp?id=5&jsonp=callback"></script>
三、jQuery.getJSON
服务器返回 json格式数据 test({"id": "3", "name": "leisure"}); test函数名为callback参数中定义
服务器返回 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/crossdomain.xml
<?xml version="1.0"?>
<cross-domain-policy>
<allow-access-from domain="*.another.com.cn" />
</cross-domain-policy>
<cross-domain-policy>
<allow-access-from domain="*.another.com.cn" />
</cross-domain-policy>
- Javascript跨域请求的几种解决方法
- Javascript跨域请求的几种解决方法
- JavaScript 跨域问题的几种解决方法
- 跨域请求的几种方式
- 跨域的几种解决方法
- 跨域的几种解决方法
- AJAX跨域的几种解决方法
- javascript 中 ajax的几种请求方式
- 探讨跨域请求资源的几种方式
- 探讨跨域请求资源的几种方式
- 探讨跨域请求资源的几种方式
- 探讨跨域请求资源的几种方式
- 探讨跨域请求资源的几种方式
- 探讨跨域请求资源的几种方式
- jsonp跨域请求的几种方式
- 探讨跨域请求资源的几种方式
- 探讨跨域请求资源的几种方式
- 探讨跨域请求资源的几种方式
- 想进入SAP行业的人仔细看看:SAP模块的选择
- 推荐一个移动开发者的网站
- 转载:Android之PreferenceActivity
- Android系统开发小知识点
- S2SH框架配置步骤
- Javascript跨域请求的几种解决方法
- openldap的详细配置!(转)
- ANDROID NDK 开发入门步骤示范
- 摘要算法 SHA1 MD5
- VMware下,主机和虚拟机ping通IP设定问题 单向ping
- 关于应届生与就业单位签约与违约的相关内容分享
- 疯子的一个梦【180】
- 字符串处理总结之三(C++string类)
- 为什么ajax中加载的数据无法赋值给变量