当前位置: 首页 > 面试题库 >

来自本地文件的jQuery ajax POST无法访问跨域

秦锐
2023-03-14
问题内容

就像标题所说的那样,我正在尝试使用jQuery
AJAX调用http://host:port/...或访问http://localhost:8080/...本地HTML文件来访问(POST)c:\home.html。我无法正常工作。

我做了Google,在这里也看到了几个问题,但无法正常工作。我需要一些帮助。到目前为止,这是我尝试过的。

  1. dataType:jsonp
  2. crossDomain:正确
  3. 在响应中设置标题:

    response.setHeader(“Access-Control-Allow-Origin”, “*”);

三种浏览器均无法运行-IE,FF或Chrome。该请求永远不会到达服务器。这是我看到的一些错误。

  1. 如果不使用jsonp,则不传输(IE)。
  2. 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嵌入式框架的一部分运行。

谢谢各位的意见。



 类似资料:
  • ('SPARK_FILES_DIR:',U'/H/TMP/Spark-76BDBD48-CBB4-4E8F-971A-383B899F79B0/userfiles-EE6DCDEC-B320-433B-8491-311927C75FE2')('inputfile name:',[U'empfile1.csv'])('input file path:',U'/H/TMP/Spark-76BDBD48

  • 谢谢大家 我的代码:

  • 问题内容: 这是问题的一个简单示例: myStyle.css 如果要使用脚本,效果很好 解决方案: 1.在文件在线/本地主机时工作 2.在其他浏览器(例如Internet Explorer,Microsoft Edge,Firefox)下工作 3. chrome –allow-file-access-from-files 问题答案: TL; DR:从Chrome 64开始,您需要使用本地开发服务器

  • 本文向大家介绍Android访问assets本地json文件的方法,包括了Android访问assets本地json文件的方法的使用技巧和注意事项,需要的朋友参考一下 目的:当App中用到固定的json数据时,如:国家城市列表、班级成员等时,可以将json数据制作为本地json文件存入assets文件夹下。 步骤如下: 1、新建assets文件夹,并将json文件复制到此文件夹中 在main文件夹

  • 问题内容: 我是angularjs的新手,我整天都在网上进行搜索,目的是找到一种解决方案,可以从本地json文件获取数据,而不必在我的webapp中使用本地主机。不幸的是,我还没有找到任何东西。我尝试使用$http.get,但收到Cross Origin *错误。 有没有其他方法可以从本地json文件中获取数据而不必在本地托管我的webapp? angularjs是否有其他功能可以从本地json文

  • 我正在尝试使用以下代码打开一个文本文件: 此代码导致此错误(第69行是FileReader初始化): 这是我的文件系统的样子:这里 感谢任何和所有帮助!