我有一系列端点,供应商的应用程序已向我开放以获取文件。如果我将这些端点输入到浏览器的地址栏中,则会打开该文件,但如果我尝试通过jQuery AJAX获取它们,则会因为跨源错误而失败(No' Access-Control-Allow-Origin& #39;标头出现在请求的资源上。因此,不允许来源{' http://mydomain'。供应商应用程序REST Web服务不支持CORS。这是我的AJAX电话:
$.ajax({
url: "http://vendorrestwebservice/endpoint",
type: "GET",
success: function (result) {
console.log("downloaded file");
},
error: function (error) {
console.log("Failed to download file!");
}
});
为什么文件在粘贴到地址栏时会打开,而不是在通过我的GET请求调用时打开?
答案 0 :(得分:5)
API需要允许您的域通过ajax(来自其他域)访问它。
直接从浏览器访问时,您所在的域名正确...:)
您可以尝试代理这样的ajax调用:
对您的服务器进行ajax调用 - >您的服务器调用api然后返回数据
或者您可以尝试使用JSONP。 Basic example of using .ajax() with JSONP?