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

对本地文件系统的AJAX请求在Chrome中不起作用?[重复]

轩辕晔
2023-03-14
问题内容

我正在努力使用jQuery从XML动态创建UI。我的jQuery在Firefox中可以使用,但在Chrome中不能使用。它给了我这个控制台错误:

跨源请求仅支持以下协议方案:http,数据,chrome,chrome扩展名,https,chrome-extension-resource。

以下是我的jQuery代码,该代码可在Firefox上运行,但不能在Google chrome上运行:

$.ajax({
    url: 'file:///home/satendra/dndExamples/avisDnD/file.xml',
    success: function(xml) {
        $(xml).find('Tab').each(function() {
            var id = $(this).attr('URL');
            var tab = $(this).attr('TabName');
            $("ul").append("<li><a href="+ id +">"+ tab +"</li>");
        });
    }
});

问题答案:

Firefox之所以允许该请求,是因为它也接受来自本地文件系统(即file://协议)的请求。但是Chrome拒绝所有XMLHttpRequests到file://url。

请注意,您无法从任一浏览器中的外部域向本地文件系统发出AJAX请求-如果可以的话,这将是一个 巨大的 安全漏洞。

为了使此AJAX请求能够在Chrome中运行,您需要向网络服务器发出请求。如果您使用的是Windows,则可以轻松地在本地计算机上安装IIS或WAMP。

请注意,可以在Google
Chrome中启用一个设置,该设置允许浏览器向本地文件系统发出请求,但是使用它并不是一个好主意。如果您决定继续进行,请在此处找到指南。



 类似资料:
  • 跨源请求只支持协议方案:http、data、chrome、chrome-extension、https、Chrome-Extension-Resource。 下面是我的jQuery代码,它可以在Firefox上运行,但不能在Google Chrome上运行:

  • 问题内容: 我正在尝试在本地文件中发出请求,但是我不知道何时尝试在计算机上显示错误。是否可以在项目中提取文件? 问题答案: 您的JSON文件需要由服务器提供服务,因此您需要快速服务器(或任何其他服务器)。在这个例子中,我们使用 express 。 注意: 您也可以下载git repo App.js文件 server.js

  • 问题内容: 我有一个脚本,可以在按下当前元素时添加一个输入字段元素。当我使用innerHTML时,它将替换当前内容,这不是我想要的。所以我想appendChild应该添加而不是替换,但是它不起作用。这是我的剧本 和我的HTML内容。 还有我的addfile.php文件。 有输入吗?同样,innerHTML可以工作,appendChild不能工作。谢谢。 问题答案: parent.appendChi

  • 所以我做了一个简单的。html文件和一个简单的。js脚本。它非常简单,只是一个按钮,可以生成http。按下后获取请求。一旦我按下按钮,get请求就会被创建,我也会从请求中得到响应(代码200,可以在调试器中看到数据),但我也会得到一个304阻塞代码(被CORS阻塞)。我正在使用jquery ajax创建请求。 我的问题是-我可以从本地文件创建get请求,但我不能使用我得到的数据。。。为什么会这样?

  • 问题内容: 我正在通过jQuery的$ .ajax函数使用的第三方API上调用POST。但是,当我拨打电话时,出现以下错误: 我从这篇文章中看到这可能是Webkit的错误,所以我在Firefox中尝试了此操作(我正在使用Chrome开发),并且得到了相同的结果。 在这篇文章中,我还尝试通过将$.ajax函数的属性设置为并将设置为来使用jsonp。但是,这导致了500个内部服务器错误。 当我使用–d

  • 问题内容: 我有一个网页,可通过Ajax处理机器的远程控制。当用户离开页面时,我想自动与机器断开连接。所以这是代码: 断开连接功能只是将HTTP GET请求发送到PHP服务器端脚本,该脚本完成了断开连接的实际工作: 在FireFox中可以正常工作。但是使用Chrome,根本不会发送ajax请求。有一个不可接受的解决方法:向回调函数添加警报: 添加警报呼叫后,请求将成功发送。但是正如您所看到的,这根