我正在构建一个托管于的Backbone应用程序,http://example.com
该应用程序利用托管于的API
https://api.example.com
。对于API,我将Node.js与Express.js框架一起使用。我的CORS解决方案似乎可以在除IE之外的所有主流浏览器中使用(甚至在IE10中失败)。
从IE10启动请求后,该请求将永远不会到达API服务器。据我所知,请求甚至没有被发送。当我使用IE10的开发人员工具检查请求时,请求标头和响应标头均为空白。从其他
任何 浏览器发送请求时,都会收到请求并正确生成响应。
这是我在控制台中看到的错误:
SCRIPT 7002: XMLHttpRequest: Network Error 0x4c7, The operation was canceled by the user.
该请求使用jQuery:
$.ajax({
url: apiRoot + "/endpoint",
success: function(response) {
// Omitted irrelevant code
}
});
根据该文章,CORS在IE默认为禁用,必须启用:
Internet Explorer忽略Access-Control-
Allow标头,并且默认情况下禁止Internet区域的跨域访问。要启用CORS,请转到“工具”->“
Internet选项”->“安全”选项卡,然后单击“自定义级别”按钮。找到“其他->跨域访问数据源”设置,然后选择“启用”选项。
果然,启用此设置后,请求将通过,一切都会按预期进行。但是,我读到此设置实际上与CORS无关,并且 不应该
影响它。使用此工具测试CORS兼容性时,无论启用还是禁用此设置,IE10都会通过,这使我相信CORS 已
启用,而我只是做错了什么。
另外,由于Fiddler充当代理,一切似乎都在我运行Fiddler时应能正常工作。
作为参考,这是服务器端与CORS相关的代码:
res.header("Access-Control-Allow-Origin", "example.com");
res.header("Access-Control-Allow-Methods", "GET, PUT, POST, DELETE, OPTIONS");
res.header("Access-Control-Allow-Headers", "Content-Type, Authorization, X-File-Name, X-File-Size, X-File-Type");
res.header("Access-Control-Allow-Credentials", true);
if (req.method == "OPTIONS") {
res.send(200);
}
尝试使用HTTP而不是HTTPS将请求发送到API服务器。听起来问题似乎与服务器的SSL设置有关,而不是与请求本身有关。如果是这种情况,请尝试对此类使用SSL设置。
var options = {
key: fs.readFileSync(key),
cert: fs.readFileSync(certificate),
ca: fs.readFileSync(CA),
requestCert: false,
};
https.createServer(options, app).listen(443);
我在Heroku上设置了一个express项目,在vercel上设置了一个react前端。当我从前端发出请求时,会出现以下错误: 在'https://helpr-dev.herokuapp.com/users/register'从原点'https://helpr-front.vercel.app“”已被CORS策略阻止:对飞行前请求的响应未通过访问控制检查:请求的资源上不存在“access con
我有Spring Boot REST API和React基于CMS。 BasicWebSecurityConfigurerAdapter.kt 我也尝试在我的RestControllers上使用注释,但我遇到了同样的问题,GET请求可以工作,POST请求不能工作。我对Spring Boot还是相当陌生的,所以我肯定有些东西我遗漏了。
花了很多时间想弄清楚这一点,但没有成功。我正试着用cookie让csurf保护运行。目前,我已经尽可能地简化了下面的代码。我正在Express上运行从React到另一台服务器的提取请求。它给出了错误: “CORS策略阻止了在”http://localhost:3003/testlogin“从origin”http://localhost:3000“获取的访问:请求的资源上没有”access-con
问题内容: 我正在用CSS过渡在鼠标悬停时从右到左设置一个容器动画。在InternetExplorer以外的所有浏览器中,此功能均正常运行。原因是我在CSSleft属性中使用了(并且需要使用)calc()。 CSS看起来像这样: 我正在使用jQuery在mouseover上添加.translate-less类: 现在,我想在Internet Explorer中顺利过渡。为此,我什至放弃了这些特定浏
我一直试图将我托管在Digital Ocean droplet上的API调用为Node.js Express服务器。我遇到的问题是科斯。下面是我的客户端调用和错误。 服务器端只是一个简单的express服务器,没有实现到代码中的核心。我试过使用app.use(cors())但没有成功,所以我现在重新开始。前端是react js和Axios。 我得到的错误是 我需要在这里做什么?在客户端和服务器端。
如何在Spring Security标签(即令牌url)中启用CORS。我使用的是spring security 3.1和spring mvc 4.3.12。我已成功生成令牌以保护API,但无法在令牌url中启用CORS。我使用了以下代码来生成访问令牌 spring-security.xml 这就是我启用CORS但不起作用的方式 dispatcher servlet。xml 这就是我得到的错误 登