来自本地文件的jQuery ajax POST无法访问跨域
就像标题所说的那样,我正在尝试使用jQuery
AJAX调用http://host:port/...
或访问http://localhost:8080/...
本地HTML文件来访问(POST)c:\home.html
。我无法正常工作。
我做了Google,在这里也看到了几个问题,但无法正常工作。我需要一些帮助。到目前为止,这是我尝试过的。
- dataType:jsonp
- crossDomain:正确
在响应中设置标题:
response.setHeader(“Access-Control-Allow-Origin”, “*”);
三种浏览器均无法运行-IE,FF或Chrome。该请求永远不会到达服务器。这是我看到的一些错误。
- 如果不使用jsonp,则不传输(IE)。
- NS_BINDING_ABORTED /在FF中加载内容(NS_ERROR_DOCUMENT_NOT_CACHED)时出错
这是我的代码。我将不胜感激任何帮助。我正在使用jquery-1.8.2.min.js
。
var http_host = "http://localhost:8080";function su (pc, p) {
var suUrl = http_host + "/ps/api/v2/authorize.json";
$.ajax({
type: 'POST',
url: suUrl,
data: {
phone_cell: pc,
password: p,
},
dataType: "json",
crossDomain: true,
success: osu,
error: oe
});
return false;
}
function osu (d) {
console.log(d);
}
function oe(xhr, ts, et) {
alert("ServerError: " + et);
}
一个例子就是完美的指针。
回答:
我想我的代码被我尝试过的所有不同解决方案弄得一团糟。我终于能够通过设置标头来使用它(建议并为其他人使用的解决方案)。我要做的就是将以下内容添加到我的REST服务响应中。
response.setHeader("Access-Control-Allow-Origin", "*");
更新:
我以为我知道了,但我没有。它不仅仅是设置标题。无论如何,在我的特定情况下。我试图从专用于chrome的硬盘驱动器上运行我的应用程序(html,js),并尝试访问云上可用的Web服务。
这是我终于解决问题的方法。我使用以下参数启动了chrome。
--disable-web-security -–allow-file-access-from-files
就像我之前提到的,这个应用程序实际上是一个桌面应用程序,它将作为Chrome嵌入式框架的一部分运行。
谢谢各位的意见。
以上是 来自本地文件的jQuery ajax POST无法访问跨域 的全部内容, 来源链接: utcz.com/qa/406669.html