XHR到同一个域被阻止

时间:2016-10-31 14:54:03

标签: ajax xmlhttprequest cors

我在网络应用上遇到一个非常奇怪的CORS问题我试图制作 我使用Servlets(Tomcat8.0)作为后端。这是一个学校项目,所以我不能使用框架

http://localhost:8080/FileBox/dashboard发出GET请求 返回一个JSON有效负载(普通json,而不是jsonp,我可以使用它,但它是同一个域)。我使用ajax来制作XHR,但它被Chrome封锁为CORS XHR blocked by chrome

如果发生这种情况,因为我从同一个域(主机+端口)制作XHR 'localhost:8080/FileBox/dashboard.jsp' to 'localhost:8080/FileBox/dashboard'

拜托,谢谢你的帮助!

1 个答案:

答案 0 :(得分:1)

您没有向http://localhost:8080/FileBox/dashboard发出请求。错误消息显示您正在使用不受支持的方案发出跨源请求,http是受支持的方案。

据推测,你犯了两个错误:

网址错误

您应该使用相对网址:

/FileBox/dashboard

但正在尝试使用绝对网址:

http://localhost:8080/FileBox/dashboard

但输入错误并实际请求

localhost:8080/FileBox/dashboard

未通过HTTP加载页面以

开头

可能通过双击系统文件管理器中的文件,您绕过了HTTP服务器并加载了file:///c:/users/you/yourproject/index.html

之类的内容

结合之前的错误,您最终尝试使用Ajax请求file:///c:/users/you/yourproject/localhost:8080/FileBox/dashboard并获得安全违规。

解决方案

  1. 将网址修改为正确的相对网址
  2. 将浏览器指向http://localhost:8080,而不是双击文件管理器中的文件