API端点资源上没有Access-Control-Allow-Origin标头

时间:2016-04-15 21:16:38

标签: javascript jquery ajax xmlhttprequest cross-domain

我正在尝试使用jQuery XHR向Zillow的API发送一个简单的GET请求。我可以在浏览器和Postman中看到请求正确返回。我已经审查了下面的API密钥 - 但请求不能简单。

$.ajax({
            url: 'http://www.zillow.com/webservice/GetMonthlyPayments.htm?zws-id=<APIKEY_GOES_HERE>&zip=89509&output=json&price=300000&down=25',
            success: function(data){alert('done');},
            dataType: 'json'
          });

我可以在控制台中看到它通过localhost或服务器上的标准跨域错误返回。

No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin '<MY-DOMAIN>' is therefore not allowed access.

Response Headers

我用这种方式使用了很多API而且我不明白 - 它真的是那么愚蠢吗?他们公开API但不允许使用CORS?这对我来说没有任何意义,我认为我必须遗漏一些明显的东西。

  • 我是否因为一些模糊不清的情况而必须进行预检?
  • 如果他们真的不允许CORS,任何人都可以帮我理解这个端点的用途吗?
  • 非常好地记录了API here

谢谢Stack。感谢您的帮助。

编辑:如果你想看到我所看到的内容,你可以毫不费力地get an API key

1 个答案:

答案 0 :(得分:1)

看起来他们禁止了CORS。您需要做的是设置自己的服务器,该服务器访问Zillow的端点,并使用AJAX在您自己的服务器上命中该路由。我相信这样做的目的是抑制CSRF,因此用户的cookie不会被发送到Zillow,因为它通过你的服务器,而不是从浏览器直接转到Zillow。