从另一个域获取json数据(跨域)

时间:2012-10-17 14:40:41

标签: asp.net jquery cross-domain

我是jquery的新手,不知道从另一个域(跨域)获取json数据。

function createCORSRequest(method, url){
var xhr = new XMLHttpRequest();
if ("withCredentials" in xhr){
    xhr.open(method, url, true);
} else if (typeof XDomainRequest != "undefined"){
    xhr = new XDomainRequest();
    xhr.open(method, url);
} else {
    xhr = null;
}
return xhr;
}

var request = createCORSRequest("get", "http://www.stackoverflow.com/");
if (request){
request.onload = function() {
    // ...
};
request.onreadystatechange = handler;
request.send();
}

我从这里找到了这个程序Ways to circumvent the same-origin policy

这就是说使用上面的代码我们可以访问跨域json数据。

我复制了代码。这是说处理程序是未定义的

我不知道如何定义处理程序。

我也不知道在request.onload中写什么

我将获得json结果

请帮忙

提前致谢

1 个答案:

答案 0 :(得分:2)

处理程序是一个函数

它应该像

function handler(){
   var response = xhr.responseText;
   // do more with your response.
}

此外,xhr应该在createCORSrequest函数之外定义。

请参阅docs on XDR

我知道你说你是jquery的新手,但你也应该看看$.getJSON。它更容易。