Chrome Javascript XMLHttpRequest“NetworkError”

nwlls2ji  于 2023-06-19  发布在  Go
关注(0)|答案(2)|浏览(207)

我在JavaScript和Web开发方面没有经验。我正在做的项目是公司培训计划的一部分。我们已被指示使用Google Chrome作为主要测试浏览器。
本质上,我正在编写一个应用程序,它将运行在公司内部网外部的客户机上。连接将通过我们的单点登录服务器传递到内部服务。单点登录服务对服务器端应用程序来说基本上是透明的-它拦截对内部服务的请求,并在必要时提示提供凭据。据我所知,它在发送的每个请求期间都会更改会话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应用程序。

a9wyjsp7

a9wyjsp71#

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

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

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

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

f4t66c6m2#

只要检查URL,就像我把“https://www.google.com”而不是“http://www.google.com”,我得到了同样的错误。所以,检查一下你在url中使用的是“http”还是“https”。

相关问题