如何使用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);
});
最受欢迎的公共API支持JSONP请求。详情请参阅API文档。
交叉AJAX请求域被限制。所以你将需要制作JSONP请求。别担心,JQuery将处理大部分内容。
好,JSONP工作,如果你正在调用该服务支持它。服务只是不提供JSONP友好格式的数据。 – 2012-08-13 14:16:47
如果不支持JSONP请求,可以做些什么?这似乎是唯一的XML响应被允许在这种情况下 – user1595566 2012-08-13 14:28:54
而是围绕着浏览器的服务器端代码黑客将是最合适的恕我直言。 – 2012-08-13 14:32:39
可能重复:请解释JSONP(http://stackoverflow.com/q/2067472/417685) – Alexander 2012-08-13 14:11:55