关于javascript:GET在URL复制到地址栏时有效,但不能通过AJAX

GET works when URL copied into address bar, but not via AJAX

本问题已经有最佳答案,请猛点这里访问。

我有一系列端点,供应商的应用程序可以从中获取文件。 如果我将这些端点输入到浏览器的地址栏中,则会打开该文件,但如果我尝试通过jQuery AJAX获取它们,则会因交叉源错误而失败(No'Access-Control-Allow-Origin'标题为 出现在请求的资源上。因此不允许来源'http:// mydomain'访问。)。 供应商应用程序REST Web服务不支持CORS。 这是我的AJAX调用:

1
2
3
4
5
6
7
8
9
10
$.ajax({
    url:"http://vendorrestwebservice/endpoint",
    type:"GET",
    success: function (result) {
    console.log("downloaded file");
  },
  error: function (error) {
    console.log("Failed to download file!");
  }
});

为什么文件在粘贴到地址栏时打开,而不是在通过我的GET请求调用时打开?


API需要允许您的域通过ajax(来自其他域)访问它。

直接从浏览器访问时,您在正确的域... :)

您可以尝试代理ajax调用,如下所示:

对服务器进行ajax调用 - >您的服务器调用api然后返回数据

或者您可以尝试使用JSONP。
使用.ajax()和JSONP的基本示例?