jQuery跨域问题解决⽅案
通过XMLHTTPRquest请求不同域上的数据,原来js跨域访问是后台有个处理路径“/test”的函数。下⾯把具体解决⽅案介绍如下。
后台处理路径“/test”的函数:
复制代码代码如下:
//路径处理
<("/test",st);
//处理函数
};
外部有⼀个⽹页需要访问路径”/test“下的内容,则可以通过JS脚本⽂件来跨域访问:
复制代码代码如下:
//处理函数
<script>
function method(data){
console.log(data);
}
</script>
//跨域访问
<script src="localhost:3000/test"></script>
结果会在当前的⽹页中弹出⼀个窗⼝:
jQuery中JSONP跨域访问的实现:
同样在后台有⼀个处理路径“/test”的函数:
//路径处理
<("/test",st);
//处理函数
};
外部有⼀个⽹页需要访问路径”/test“下的内容,通过JSONP来实现跨域访问:
//引⼊跨域访问中的jQuery函数库
<script src="localhost:3000/js/jquery-1.9.1.min.js"></script>
//jQuery中JSONP跨域访问
<script>
$.ajax({
jquery实现ajaxurl:"localhost:3000/test",
type:"get",
success:function(data){
$("body").s);
},
dataType:"jsonp",
jsonpCallback:"method"
});
</script>
结果会在当前的⽹页中显⽰如下信息:
通过上述代码我们可以看出JSOPN跨域访问和原始的JS跨域访问的不同之处是JSONP不需要写处理跨域访问的函数(例如上述⽅法中使⽤的method函数),在JSONP跨域访问时会⾃动帮我们创建处理跨域访问的函数。
JSONP跨域访问的优点:
1.它不像XMLHTTPRequest对象实现的AJAX请求那样受到同源策略的限制;
2.它的兼容性更好,不需要XMLHTTPRequest或ActiveX的⽀持;
3.在请求完成后可以通过调⽤callback的⽅法传回结果。
JSONP跨域访问的缺点:
1.它只⽀持GET请求⽽不⽀持POST及其他类型的请求;
2.它只⽀持跨域HTTP请求这种情况,不能解决不同域的两个页⾯之间如何进⾏JavaScript调⽤的问题。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论