,,Javascript跨域请求的4种解决方式

,,Javascript跨域请求的4种解决方式

如果请求的域名和这个域名不一样,这种情况就是跨域。因为跨域存在漏洞,正常的跨域请求方式一般是无法请求的。所以有了这篇文章的出现,有兴趣的可以参考以下。希望能帮到你。

什么情况下才会出现跨域?假设域名是:http://www.example.com.cn/,如果请求的域名和这个域名不一样,这种情况就是跨域的。因为跨域是有漏洞的,一般来说正常的跨域请求方式是请求不了的。解决方式:一、window.name1.服务器返回的副本代码如下:scriptwindow.name=' {'id':' 3 ',' name ':' leisure ' } ';/脚本2。定义一个iframe并添加一个onload事件iframe ID=' iframe 1 ' onload=' iload ' iframe script type=' text/JavaScript ' varload=false;function iload(){ if(load==false){//在同一个域中处理,iframe document . getelementbyid(' iframe 1 ')。请求后将再次重新加载content window . location='/';load=true} else {//获取window.name的内容注意,只有在同一个域中处理后才能访问!var data=document . getelementbyid(' iframe 1 '). content window . name;警报(数据);//{'id':'3 ',' name ':'休闲' } load=false} }/脚本3。定义一个表单,将表单的目标设置为iframe的id,然后提交表单复制代码如下:form action=' URL ' method=' post ' target=' iframe 1 ' button type=' submit ' value=' submit '/form二、JSONP服务器返回一个回调({'id':' 3 ',' name':' leisure'})复制的代码如下:script type=' text/JavaScript '函数回调(data){ alert(data);} /script脚本类型=' text/JavaScript ' src=' http://www . example . com . cn/product . JSP?id=5 jsonp=callback '/script三、jQuery.getJSON服务器返回json格式数据test ({'id':' 3 ',' name ':' leisure ' });测试函数的名称是callback。参数中定义的复制代码如下:$。getJSON(网址)?回调=?',数据,函数(数据){}注意回调=?这个参数必须取,jquery会自动生成一个函数名来代替这个问号!JQuery.getJSON实际上是在JSONP中实现的。四、flash跨域服务器添加cross domain . XML http://www.example.com.cn/crossdomain.xml复制代码如下:xml版本='1.0 '?跨域策略allow-access-from domain=' * . another . com . cn '//跨域策略

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: