【问题标题】:File Read ajax call browser compatibility文件读取ajax调用浏览器兼容性
【发布时间】:2013-03-30 00:03:24
【问题描述】:

我正在尝试在给定的代码下运行。它在 IE 浏览器中可以正常工作,但在其他浏览器中却无法正常工作。

<script type='text/javascript' src='http://ajax.googleapis.com/ajax/libs/jquery/1.6.4 /jquery.min.js'></script>

<script type="text/javascript">
$(document).ready(function(){
 $("#button1").click(function(){

    alert("1");     
        $.ajax({url:"file://///30.170.12.75/Shared/a.html"
        ,success:function(result) {$("#div1").html(result);}
        ,error: function(result) {alert("2");}
         });
  });
});
<script>

据我所知,jquery api 也为我们提供了浏览器兼容性,但它不适用于任何其他浏览器。

请告诉我原因,以便我将来照顾他们。

【问题讨论】:

  • 您是否因错误而收到警报('2')?如果是这样,您能否将该结果传递给 alert 并告诉我们什么错误?
  • @Moniecorleone 当我将结果放入警报而不是 2 时,我得到了对象。
  • @Boaz 感谢您的回复 ajax call is not working.It is always display me alert("2") for other borwsers.
  • 您得到的错误是“无传输”错误。这个问题有类似的线程。请参考。 stackoverflow.com/questions/5241088/…
  • 为了识别你得到的错误类型,alert 'result.statusText'

标签: jquery html ajax cross-browser


【解决方案1】:

您正在使用file:// 协议,如果源文档不是使用file:// 协议的服务器,则大多数浏览器都不允许访问此协议。

对于 ajax 请求,如果目标协议是 file:// 协议,大多数浏览器都会阻止请求。但是,IE 似乎没有这样的行为,仍然允许请求完成。

如果您使用的是 Chrome,则可以通过使用 --allow-file-access-from-files 标志启动 Chrome 来更改此设置。

(真的是file://而不是http://或其他东西吗?)

【讨论】:

  • 我在 FF 中直接访问这个“file://///30.170.12.75/Shared/a.html” url,chrome 工作正常。
  • 直接访问 URL 不会调用对基于 JavaScript 的访问 URL 尝试实施的安全限制。即使使用file: 提供源文档,大多数浏览器也不允许访问不同的文件。使用 HTTP。
  • @Java_Alert — IE 不是“大多数浏览器”。不同的浏览器对本地文件实施不同级别的保护。 IE 允许它解释了为什么我不断收到带有 HTML 附件的网络钓鱼/木马电子邮件,但他们希望我打开它们。
  • @Quentin Http 根本不工作。我已经检查过了。
  • 从一个文件 URI,大多数浏览器会阻止访问其他文件 URI 和 HTTP URI。通过 HTTP 加载原始文档并使用 Ajax 从与原始文档相同的来源请求资源。
猜你喜欢
  • 1970-01-01
  • 2011-06-12
  • 1970-01-01
  • 1970-01-01
  • 2018-11-25
  • 2012-10-19
  • 2012-08-09
相关资源
最近更新 更多