AJAX 调用在公司防火墙后失败

Posted

技术标签:

【中文标题】AJAX 调用在公司防火墙后失败【英文标题】:AJAX call failing behind corporate firewall 【发布时间】:2011-08-09 21:14:45 【问题描述】:

我正在使用 jQuery 的 $.ajax() 方法来获取大约 26KB 的 JSONP 数据。

数据在我测试过的每个位置(工作、家庭、手机等)都能在 FF、Chrome、IE 和 Safari 中完美返回。

唯一的例外是我的一位客户试图从他公司的防火墙后面访问该站点。不幸的是,我无法让他向我提供响应,但我知道我的成功函数正在执行 - 所以似乎响应以某种方式被破坏了,因为任何引用返回的 JSON 的内容都未定义。

我的问题是:防火墙是否会限制 XHR 响应的长度?还有其他一些我可能遗漏的明显解释吗?

非常感谢。

更新:

对于任何偶然发现这篇文章的人...我完全忘记了 AJAX 调用是针对使用非标准端口的我的开发服务器之一。很确定这就是他的防火墙不喜欢它的原因。

感谢所有评论的人。

【问题讨论】:

你确定客户端没有使用一些非常旧的浏览器吗? 是的。他尝试使用 FF 4 和 Chrome 10。 如果你的客户有FF4,也许你可以在FireBug的控制台上给他一个快速的速成课程?以便您知道实际响应是什么。 ...或让他使用 TeamViewer 与您共享屏幕 【参考方案1】:

我打算建议,除了你弄乱了 url,一些防火墙对请求有主动过滤,这可能会从你的请求中去除相关的 java 脚本调用(偏执的网络为独特的开发环境创造了条件)。

只是提醒人们,当他们的应用程序在这里工作时可能会摸不着头脑,但在公司环境中却不是。

【讨论】:

以上是关于AJAX 调用在公司防火墙后失败的主要内容,如果未能解决你的问题,请参考以下文章

安装SQL到最后一步的时候出现"对于MSSQLServer服务,服务控制操作失败:1726远程过程调用失败 "怎么解决?

局域网 filezilla 错误:读取目录列表失败

svn checkout 提示“由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。”解决方法

添加端口进防火墙

如何在防火墙后同步 iOS 时间?

mysql客户端授权后连接失败问题