服务器在访问CORS资源时响应400错误请求

时间:2017-02-25 10:40:24

标签: node.js apache https cors

我已经设置了apache服务器,以允许通配符域名在跨域内的页面内进行调用时访问它。

我在VirtualHost的apache配置文件中只有以下行。

对于端口80和443虚拟主机,它们都在Header always set Access-Control-Allow-Origin "*"指令中有<Virtualhost>

如果我通过HTTP访问它,我可以提出请求,但不能用于HTTPS。 我从Chrome开发人员工具获得的HTTPS案例错误如下。

  

Fetch API无法加载http://gens.wasin.io:443/ec/issues_open.json。请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,不允许原点“http://localhost:3000”访问。响应具有HTTP状态代码400.如果不透明响应满足您的需要,请将请求的模式设置为“no-cors”以获取禁用CORS的资源。

我使用普通的HTTP / HTTPS NodeJS模块测试了一个调用,没什么特别的。奇怪的是,当我使用其他网址(不是我的网站)进行测试时,它是成功的,但我上面的HTTPS网址只有问题。

更新

我测试了更多。发现如果使用http://localhost:3000从原点进行测试,tt将正常工作。请注意http,代码请求http资源。

但是如果我连接ngrok以映射到http://localhost:3000并使用https来测试URL(仍然是代码请求http资源`。现在失败这样做。

所以我已经调整了代码以检查网页的位置来源,然后请求httphttps与原点相同的协议以避免问题。我相信这是一个问题,即不安全的页面无法提供安全页面请求,而安全页面无法请求取消安全页面。后者比前者更可信。

因此,这可能是关于apache配置,因为我测试了对其他URL的请求,即使我正在测试localhost的http,它仍然有效。但是仍然不知道apache配置有什么问题。

0 个答案:

没有答案