jQuery Ajax得到错误No Transport,状态为0

jQuery Ajax get error No Transport with a status 0

本文关键字:状态 Transport No Ajax 错误 jQuery      更新时间:2024-03-08

我正在对我们的一个页面进行jquery.ajax()调用,以获取一个小文本文件。我看到一些请求(不是全部)失败,resp.statusText:"No Transport"和resp.status:0

错误意味着什么(响应代码为0的无传输)。奇怪的是,它在某些浏览器上有效,但在某些浏览器中却不起作用。通过查看浏览器的用户代理,我找不到一个模式,它在哪里失败了。

如有任何帮助,我们将不胜感激。我是javascript和jquery库的初学者,如果我遗漏了关键信息,请告诉我。

My use case:
abc.mydomain.com contains jquery.ajax(url:xyz.mydomain.com) call

很可能它会阻止您触发请求,因为它会影响您试图访问另一个域。xyz.mydomain.com!==mydomain.com.

为什么这是不允许的?读取

  • 使用Web代理进行跨域XMLHttpRequest调用
  • 为什么跨域Ajax是一个安全问题

举个例子说明为什么这是一个安全问题,假设你在浏览器中安装了一个糟糕的插件。如果该插件获得了权限,它可以将所有加载的文件读取到您的浏览器中,并能够编辑/更改/注入内容和代码。然后,它可能会将所有收集到的数据发送到设计者自己的服务器。

。。。使用浏览器插件可以轻松完成的最常见的业务需求是:修改默认搜索、添加侧框、将新内容注入现有网页更多

一个好的做法是通过JSON通过ajax获取数据,如果您试图访问脚本调用的站点之外的另一个站点,则使用JSON-p。

读取

  • JSON-P
  • 对子域的JSON-P调用
  • Chrome对子域的ajax调用

    一种常见的体系结构是调用从中加载脚本的当前域,然后使用服务器脚本从另一个域获取数据,另一个领域将响应请求并返回数据。

您的函数的代码片段将帮助我们更多地了解您的问题。