jQuery 实现异步跨域请求实例教程

作者:袖梨 2022-11-14

代码如下 复制代码
window.demo = {
"txt" : "Hello World"
}

这就是所谓的 JSONP,把数据以 JSON 的格式保存在一个对象中,方便我们之后去引用这个对象。

然后,我们就可以用 getScript 的方法去异步加载刚才保存的 JS,并处理返回结果,方法如下:

代码如下 复制代码

var url = 'http://xxx.xxx/demo.js';
var success = function() {
alert(window.demo.txt)
};
$.getScript(url, success);

保存以上两个文件,在本地运行就能看到效果,当然,不要忘记加载 jQuery。

除了上面实现跨域之外我们还可以实现$.getJSON进行跨域了。


下面开始贴出方法。

//跨域(可跨所有域名)

代码如下 复制代码


$.getJSON("/getregion.aspx?id=0&jsoncallback=?",function(json){ //要求远程请求页面的数据格式为: ?(json_data) //例如: //?([{"_name":"湖南省","_regionId":134},{"_name":"北京市","_regionId":143}]) alert(json[0]._name); });

注意,getregion.aspx中,在输出JSON数据时,一定要用Request.QueryString["jsoncallback"],将获取的内容放到返回JSON数据的前面,假设实际获取的值为42342348,那么返回的值就是 42342348([{"_name":"湖南省","_regionId":134},{"_name":"北京市","_regionId":143}])

因为getJSON跨域的原理是把?随机变一个方法名,然后返回执行的,实现跨域响应的目的。

具体getJSON的使用说明,请参考JQUERY手册。


浏览器会进行同源检查,这导致了跨域问题,然而这个跨域检查还有一个例外那就是HTML的

相关文章

精彩推荐