2012-08-13 65 views
0

如何在Javascript應用程序中使用公共API?例如,我想用JQuery AJAX調用Zillow API。 當發出在JQuery的AJAX請求(如下所示)得到以下錯誤: 的XMLHttpRequest不能加載「MY HTTP請求的URL」。 Access-Control-Allow-Origin不允許來源「MY WEB DOMAIN」。如何使用JavaScript對Javascript進行HTTP調用?

var requesturl = "http://www.zillow.com/webservice/GetRegionChildren.htm?zws-id="+zwsid+"&state="+state+"&city="+city+"&childtype=neighborhood"; 

代碼:

var jqxhr = $.ajax({ 
url: requesturl 
}) 
.done(function(data) { 
    console.log(data); 
}); 

我也嘗試添加跨域,數據類型,且頭PARAMS(如下圖所示),但他們並沒有幫助。

var jqxhr = $.ajax({ 
url: requesturl, 
crossDomain: true, 
dataType: 'xml', 
headers: { 'Access-Control-Allow-Origin': '*' }, 
beforeSend: setHeader 
}) 
.done(function(data) { 
    console.log(data); 
}); 
+0

可能重複:請解釋JSONP(http://stackoverflow.com/q/2067472/417685) – Alexander 2012-08-13 14:11:55

回答

0

最受歡迎的公共API支持JSONP請求。詳情請參閱API文檔。

交叉AJAX請求域被限制。所以你將需要製作JSONP請求。別擔心,JQuery將處理大部分內容。

+0

好,JSONP工作,如果你正在調用該服務支持它。服務只是不提供JSONP友好格式的數據。 – 2012-08-13 14:16:47

+0

如果不支持JSONP請求,可以做些什麼?這似乎是唯一的XML響應被允許在這種情況下 – user1595566 2012-08-13 14:28:54

+0

而是圍繞着瀏覽器的服務器端代碼黑客將是最合適的恕我直言。 – 2012-08-13 14:32:39

0

聽起來像是你需要註冊與Zillow的網址,也許與他們聯繫,/他們的文檔頁面周圍的追捕。另外jquery有一個get方法,它使ajax請求更加簡單。如果這是返回格式,也有getJSON