【问题标题】:How can I use make HTTP calls to an API in Javascript?如何使用 Javascript 对 API 进行 HTTP 调用?
【发布时间】:2012-08-13 14:05:46
【问题描述】:

如何在 Javascript 应用程序中使用公共 API?例如,我想使用 JQuery AJAX 调用 Zillow API。 在 JQuery AJAX(如下所示)中发出请求时,出现以下错误: XMLHttpRequest 无法加载“我的 HTTP 请求 URL”。 Access-Control-Allow-Origin 不允许来源“MY WEB DOMAIN”。

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);
});

我也尝试添加 crossDomain、dataType 和 headers 参数(如下所示),但它们没有帮助。

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

【问题讨论】:

标签: javascript jquery api http request


【解决方案1】:

最流行的公共 API 支持 JSONP 请求。有关详细信息,请参阅 API 文档。

跨 ajax 域请求受到限制。因此,您将需要发出 JSONP 请求。不用担心 JQuery 会处理其中的大部分。

【讨论】:

  • 好吧,如果您调用的服务支持 JSONP,它就可以工作。服务只是不提供 JSONP 友好格式的数据。
  • 不支持JSONP请求怎么办?在这种情况下似乎只允许 XML 响应
  • 恕我直言,而不是围绕浏览器破解服务器端代码将是最合适的。
  • 好的,谢谢,你知道在 PHP 中做这种事情的任何例子吗?
【解决方案2】:

听起来您需要在 Zillow 注册您的网址,也许可以联系他们/在他们的文档页面上四处寻找。 jquery 还有一个get 方法,它使ajax 请求更加简单。如果是返回格式,还有getJSON

【讨论】:

    猜你喜欢
    • 2016-12-19
    • 1970-01-01
    • 1970-01-01
    • 2018-11-10
    • 2021-02-06
    • 2011-05-12
    • 2013-03-18
    • 2019-04-22
    • 2014-10-22
    相关资源
    最近更新 更多