Pur*_*Dua 5 javascript python jquery 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
}
)};
Run Code Online (Sandbox Code Playgroud)
我了解了HTTP请求之外的HTTP请求GET以及POST它们如何首先作为OPTIONS请求进行预处理,并且只有当它是真正的请求时,才会作为PUT/DELETE/PATCH请求进行处理。
我看到的解决方案在那里说,这可能是一个CORS问题,但CORS在启用从后端允许GET/POST/PUT/PATCH/DELETE请求。此外,我能够成功进行GET,并POST请求,但没有PUT请求经历。
我正在使用“ Chrome开发工具”,并研究了如何通过清除缓存和cookie,刷新DNS并重新安装Chrome来解决此错误,但到目前为止,这些解决方案都无法正常工作。
我正在制作前端UI,不确定是客户端错误还是服务器错误?
任何帮助,将不胜感激。
可以肯定的是,这是一个后端问题。当后端和前端之间的跨源通信未正确连接时,会发生这种情况。考虑到您已经导入了cors并设置了中间件,很可能在源URL和请求URL方面使用PUT方法都犯了一个错误。
您可以做的事情:
1)确保两个服务器都在运行(后端和前端)。
2)查看Google开发工具并查看网络部分。查看请求标头和常规信息。确保请求URL /后端具有您的后端服务器URL,而orgin / frontend具有您的前端URL。
3)确保在您的http.put()方法中,您要提供的域与您在服务器中设置的api相匹配。
4)您的问题是您的后端未正确连接到您的前端,因此请不要浪费时间尝试查找其他错误。专注于调试http.put()方法以及已导入的cors模块和中间件。
鉴于这确实是一个 CORS 问题 - 浏览器使用 OPTIONS 方法“预检”请求。OPTIONS 请求成功后,将发出实际请求(在您的情况下为 PUT)。
确保后端响应 OPTION 请求。您可以轻松捕获所有 OPTION 请求并返回200 OK或204 NO CONTENT。