使用 JSONP 的 Jquery 跨域 ajax 调用





5.00/5 (3投票s)
大家好。我们都知道 Ajax 的作用及其实现方式。我们可以在 asp.net 以及 javascript/jquery 中使用 ajax。但是存在
大家好。我们都知道 Ajax 的作用及其实现方式。我们可以在 asp.net 以及 javascript/jquery 中使用 ajax。但是存在同源策略的限制。也就是说,我们只能使用 ajax 在我们自己的站点内进行 post 和 get 请求。我们可以调用 webservices,但只能从代码后台进行调用。即使我们使用任何脚本语言,它也会限制我们调用第三方域名。此外,在使用 SSL 的情况下,javascript/jquery 的 ajax 调用很容易失败。但是,使用 jquery 的 ajax api 调用和 jsonp,我们可以将 ajax 调用定位到我们网站范围之外。
$(document).ready(function() {
var surl = "http://www.anotherdomain.com/webservice.asmx";
$.ajax({
type: 'GET',
url: surl,
crossDomain: true,
contentType: "application/json; charset=utf-8",
data: { UserID: 1234 },
dataType: "jsonp",
success: function(msg) {
$.each(msg, function(name, value) {
alert(value);
});
},
error: function(xhr, status, error) { alert('服务器错误 404 !!'); },
async: false,
cache: false
});
});
注意:这仅适用于 json 数据类型,因此在请求 webservice 时,应该以 Javascript 对象表示法格式返回数据。