API 端点的资源上没有 Access-Control-Allow-Origin Header

No Access-Control-Allow-Origin Header on resource of API endpoint

我正在尝试使用 jQuery XHR 向 Zillow 的 API 发送一个简单的 GET 请求。我可以在浏览器和 Postman 中看到请求 returns 正确。我已经在下面审查了我的 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'
          });

我可以在控制台中看到它通过本地主机或在服务器上时返回标准 Cross-Domain 错误。

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

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

谢谢堆栈。感谢你的帮助。


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

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