一般来说,我在javascript和web开发方面缺乏经验。我正在做的项目是一个普通公司培训计划的一部分。我们被指示使用Google Chrome作为主要的测试浏览器。
实际上,我正在编写一个应用程序,该应用程序将在公司内部网外部的客户端上运行。连接将通过我们的单点登录服务器连接到内部服务。单点登录服务对服务器端应用程序大多是透明的-它拦截对内部服务的请求,并在必要时提示提供凭据。据我所知,它在每次发送请求时都会更改会话cookie。
我已经使用HTTP GET和POST连接建立了到服务的连接。但是,有一个服务需要HTTP PUT请求。这就是麻烦来了。
运行脚本时,Chrome javascript控制台显示以下错误:
Uncaught NetworkError: A network error occurred.这个错误太模糊了。当我查看Chrome developer选项卡中的Network选项卡时,它显示了请求,但没有任何响应数据。
出于好奇,我右键单击请求并将其复制为cURL请求。我通过-b标志将会话cookie附加到请求。cURL返回一个HTTP302,其中引用了服务器上的make cookie脚本。作为一个PUT请求,重定向不会导致请求失败吗?但我不能肯定这就是Chrome/js正在发生的事情。
有什么方法可以让我获得更多关于这个错误的信息吗?
我对开发内部服务供我们使用的团队不是百分之百有信心,所以使用PUT请求确实是不可能的……这些服务也仍在开发中。
需要说明的是,总体问题是,如果可能的话,我需要这个PUT请求通过我们的SSO应用程序。
发布于 2013-11-13 14:12:20
我也遇到过同样的问题。这似乎只发生在重定向响应上。如果您将async标志设置为false并使用回调函数,那么错误就会消失。例如:
xmlhttp.open("GET","http://google.com", false);然后你需要一个像这样的函数来监听响应:
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
// do stuff here
}
}https://stackoverflow.com/questions/18420982
复制相似问题