错误选项net :: ERR_CONNECTION_REFUSED

时间:2017-07-15 06:41:42

标签: javascript jquery python google-chrome

我正在使用“jQuery”(前端)和“Python”(后端)开发Web应用程序。在发出PUT请求以更新数据库中的详细信息时,这是我在控制台中遇到的错误:

  

选项“REST API URL”net :: ERR_CONNECTION_REFUSED

我的jQuery代码是:

$.ajax({ 
    type: "PUT",
    url: "REST API URL",
    headers: {"Content-Type": "application/json", "Authorization": AuthToken},
    data: "details to be updated in database",
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function(data,status) {
      //do something with data
    },
    error: function(data,status) {
      //show error data and status
    }
)};

我读到有关GETPOST以外的HTTP请求首先作为OPTIONS请求进行预先处理的情况,并且仅当它是真正的请求时才会被处理为PUT/DELETE/PATCH请求。
我看到解决方案说它可能是CORS问题,但CORS 已启用来自后端以允许GET/POST/PUT/PATCH/DELETE请求。此外,我成功地发出了GETPOST个请求,但没有PUT个请求正在通过。
我正在使用“Chrome开发工具”,并通过清除缓存和Cookie,刷新DNS并重新安装Chrome来研究如何修复Chrome的此错误,但目前尚未解决任何问题。
我正在制作前端UI,我不确定这是客户端错误还是服务器端错误? 任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:4)

有一件事是肯定的,这是一个后端问题。当后端和前端之间的交叉原始通信未正确连接时会发生这种情况。考虑到您已经导入了cors并设置了中间件,很可能您在原始URL和请求URL方面使用PUT方法时出错了。

你可以做的事情:

1)确保两台服务器都在运行(后端和前端)。

2)查看Google开发工具并查看网络部分。查看请求标头和常规。确保请求网址/后端包含您的后端服务器网址,而 orgin / frontend 包含您的前端网址。

3)确保在http.put()方法中,您提供的域与您在服务器中设置的API相匹配。

4)您的问题是您的后端未正确连接前端,因此请不要浪费时间尝试查找其他错误。专注于对http.put()方法以及您导入的cors模块和中间件进行调试。

答案 1 :(得分:1)

鉴于它确实是一个CORS问题 - 浏览器使用OPTIONS方法预检“请求”。在OPTIONS请求成功之后,实际请求(在您的情况下为PUT)。

确保后端响应OPTION请求。您可以轻松捕获所有OPTION请求并返回200 OK204 NO CONTENT