我在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应用程序。
答案 0 :(得分:11)
我遇到了同样的问题。它似乎只发生在重定向响应上。如果将async标志设置为false并使用回调函数,则错误消失。例如:
xmlhttp.open("GET","http://google.com", false);
然后你需要一个这样的函数来监听响应:
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
// do stuff here
}
}