【发布时间】:2019-12-05 14:42:03
【问题描述】:
我使用 C++ 和以下库创建了一个 API:https://github.com/yhirose/cpp-httplib
在 API 中,我为 CORS 的响应添加了标头:
svr.Post("/suggest", [&dr](const Request &req, Response &res){
res.set_header("Access-Control-Allow-Origin","(origin here)");
(origin here) 是发出请求的服务器的来源。
在浏览器端,我还启用了绕过 CORS 的扩展程序。但是当尝试向 API 发出 AJAX 请求时,我的浏览器控制台中仍然出现此错误:
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://192.168.1.10:10120/suggest. (Reason: CORS request did not succeed).
AJAX 请求是通过使用 Tampermonkey 扩展程序编写的脚本完成的,以在特定网站上运行。
我是否需要修改托管网站的服务器上的标头?我在 C++ 方面做错了吗?
另外,提及该代码之前有效可能很重要。我所做的只是改天使用不同的本地 IP 地址返回它(我将其重新编程到 c++ API 中)
【问题讨论】:
-
响应的 HTTP 状态码是什么?您可以使用浏览器开发工具中的网络窗格进行检查。是 4xx 还是 5xx 错误而不是 200 OK 成功响应?
-
@sideshowbarker 我尝试查看错误代码,它再次起作用。这次它给了我一个关于自签名证书的错误,所以我在一个新选项卡中打开它并添加了一个例外。它又开始工作了。之前没有给我这个错误,不确定是什么导致了这种不一致。感谢您的帮助!