chrome不允许本地主机来源

Posted

技术标签:

【中文标题】chrome不允许本地主机来源【英文标题】:chrome not allowing localhost origin 【发布时间】:2018-08-28 15:40:13 【问题描述】:

我有一个 tomcat 服务器,在 web xml 中我定义了 cors 过滤器来接受所有请求。

<filter>
   <filter-name>CorsFilter</filter-name>
   <filter-class>org.apache.catalina.filters.CorsFilter</filter-class>
   <init-param>
    <param-name>cors.allowed.origins</param-name>
    <param-value>*</param-value>
    </init-param>
    <init-param>
        <param-name>cors.allowed.methods</param-name>
        <param-value>GET,POST,HEAD,OPTIONS,PUT,DELETE</param-value>
    </init-param>
 </filter>
 <filter-mapping>
   <filter-name>CorsFilter</filter-name>
   <url-pattern>/*</url-pattern>
 </filter-mapping>

在 chrome 的网络检查器中,我收到请求成功到达的报告,我什至可以看到响应 JSON。 network inspector screenshot

但在控制台中我仍然收到此错误消息: Failed to load http://localhost:8080/refactor/repair: The 'Access-Control-Allow-Origin' header has a value 'null' that is not equal to the supplied origin. Origin 'null' is therefore not allowed access.

编辑:刚刚尝试在 Internet Explorer 中打开我的网页,它工作正常

【问题讨论】:

/etc/hosts 文件中将域(类似于project-name.dev)设置为127.0.0.1 是否有帮助?或者 c:\Windows\System32\Drivers\etc\hosts 如果您是 Windows 用户。 感谢回复,尝试了您的解决方案,但没有效果 抱歉,不知道我是怎么错过的,你是对的 - 不知道为什么! 这是一个文件,用于添加一些信息,直到最近我在我的机器上安装了 android studio 时,cors 过滤器才能正常工作,不知道它是否以某种方式连接。 好吧,通过 npm 的一些最小的 http 服务器包进行了尝试,它可以工作!非常感谢你:) 【参考方案1】:

当一个页面请求一个ajax请求,但页面本身没有通过服务器运行,这意味着它没有http协议,那么它也不会有origin。这对于接收 ajax 请求的服务器设置 Access-Control-Allow-Origin 标头是强制性的。

通过使用简单的 http 服务器,例如python自带的,这个可以轻松解决。

对于使用 python 2windows 用户:

py -m SimpleHTTPServer <SOME_PORT>

对于使用 python 3windows 用户:

py -m http.server <SOME_PORT>

对于使用 python 2ma​​c/linux 用户:

python -m SimpleHTTPServer <SOME_PORT>

对于使用 python 3ma​​c/linux 用户:

python -m http.server <SOME_PORT>
# or the binary might be python3:
python3 -m http.server <SOME_PORT>

【讨论】:

以上是关于chrome不允许本地主机来源的主要内容,如果未能解决你的问题,请参考以下文章

如何防止在 Chrome 中发送 Origin HTTP 标头?

进行本地连接时不允许主机连接到此mysql服务器[关闭]

进行本地连接时不允许主机连接到此mysql服务器[关闭]

不允许向本地主机发出请求 - swift

不允许到我的本地主机的明文 HTTP 流量

修复不同本地主机之间的“cors”请求。 405(不允许的方法)