Javascript XMLHttpRequest“NetworkError”

时间:2013-08-24 17:02:16

标签: javascript http google-chrome single-sign-on put

我在javascript和web开发方面缺乏经验。我正在进行的项目是一般公司培训计划的一部分。我们已被指示使用Google Chrome作为主要测试浏览器。

基本上,我正在编写一个将在公司内部网外部的客户端上运行的应用程序。 Connections将通过我们的单点登录服务器传递给内部服务。单点登录服务对服务器端应用程序基本上是透明的 - 它拦截对内部服务的请求,并在必要时提示输入凭据。据我所知,它会在每次发送请求时更改会话cookie。

我已使用HTTP GET和POST连接建立了与服务的连接。但是,有一项服务需要HTTP PUT请求。这就是麻烦的来源。

运行脚本时,Chrome javascript控制台会出现以下错误:

Uncaught NetworkError: A network error occurred.

错误太模糊了。当我查看Chrome开发人员标签中的“网络”标签时,它会显示请求,但它没有任何响应数据。

为了好奇,我右键点击了请求并将其复制为cURL请求。我通过-b标志将会话cookie附加到请求中。 cURL返回HTTP 302,并在服务器上引用make cookie脚本。作为PUT请求,没有任何重定向导致请求失败?但我不肯定这是Chrome / js中发生的事情。

有没有办法可以获得有关错误的更多信息?

我对开发内部服务供我们使用的团队没有100%的信心,因此使用PUT请求确实是不可能的......服务仍在开发中。

要清楚,整体问题是如果可能的话,我需要这个PUT请求通过我们的SSO应用程序。

1 个答案:

答案 0 :(得分:11)

我遇到了同样的问题。它似乎只发生在重定向响应上。如果将async标志设置为false并使用回调函数,则错误消失。例如:

xmlhttp.open("GET","http://google.com", false);

然后你需要一个这样的函数来监听响应:

xmlhttp.onreadystatechange=function() {
  if (xmlhttp.readyState==4 && xmlhttp.status==200) {
    // do stuff here
  }
}