如何使用JavaScript对Javascript进行HTTP调用?

问题描述:

如何在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

最受欢迎的公共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

听起来像是你需要注册与Zillow的网址,也许与他们联系,/他们的文档页面周围的追捕。另外jquery有一个get方法,它使ajax请求更加简单。如果这是返回格式,也有getJSON