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的基本示例?