2012-10-17 43 views
0

我是jquery的新手,不知道從另一個域(跨域)獲取json數據。從另一個域(跨域)獲取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數據。

我複製了代碼。這是說處理程序是undefined

我不知道如何定義處理程序。

我也不知道該怎麼裏面request.onload

寫在那裏我會得到JSON結果

請幫

在此先感謝

回答

2

的處理程序是一個函數

它應該是類似

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

另外你還應該在函數createCORSrequest之外定義xhr。

docs on XDR

我知道你說你是新來的jQuery,但你也應該考慮$.getJSON。它更容易。

+0

嗨Praneeta 我正在嘗試訪問其他域的數據。 但它顯示錯誤 XMLHttpRequest無法加載http://192.168.10.13:8080。 Access-Control-Allow-Origin不允許原始http:// localhost。 如何解決這個問題。 – bhagirathi

+0

您必須添加'Response.AppendHeader(「Access-Control-Allow-Origin」,「*」);'到您的服務器端code.found它在此頁[http://stackoverflow.com/q/6516591/1028488](http://stackoverflow.com/q/6516591/1028488)$ .getJson可用於訪問數據來自不同的域(我一直使用它),但我不確定IE如何對待它。 – Praneeta

+0

另外,一旦你完成本地主機上的測試並將其移動到服務器,你可以從*訪問控制你的域名(安全) – Praneeta