【发布时间】:2019-10-27 21:05:16
【问题描述】:
我正在开发一个 Laravel 和 Angular 项目。项目在另一台计算机上运行良好,但我的笔记本电脑出现以下错误。
我使用了this 包。我尝试了几种方法,但找不到任何解决方案。
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource
我的.htaccess 文件如下所示
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews -Indexes
</IfModule>
RewriteEngine On
# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.+)/$
RewriteRule ^ %1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
有人可以在这方面帮助我吗?
【问题讨论】:
-
您需要解决的问题是,您发送请求的服务器正在响应 OPTIONS 请求,出现 500 Internal Server Error。所以你没有 CORS 问题。相反,您有 500 Internal Server Error 问题。您的浏览器报告 CORS 错误的唯一原因是 500 错误没有 Access-Control-Allow-Origin 响应标头。 500 错误几乎不会出现该标题。查看服务器端的服务器日志,以查看服务器正在记录哪些消息,说明导致服务器发送 500 响应的内部服务器问题。
-
谢谢@sideshowbarker。在 localhost 工作时如何查看服务器日志?
-
谢谢@sideshowbarker。带有 500 Internal Server Error 的 OPTIONS 请求是什么意思?我打错网址了吗?
-
@sideshowbarker 我希望我能支持你的回答。我花了半天时间不明白为什么会出现这个错误,而且(当然)我在 cors 设置中所做的任何事情都没有帮助。谢谢你,我终于找到了实际的错误
-
@CSquare 很高兴它帮助了你。不幸的是,您遇到的情况是许多其他人也经常遇到的情况。浏览器没有在 CORS 错误消息中包含 HTTP 状态代码的事实——并且不会以其他方式使 HTTP 状态代码非常容易被发现——导致许多开发人员最终浪费了大量时间。我希望我可以说我知道浏览器会在这方面做出一些改进……但我不能。事实上,Chrome 已经做出了一些改变,这会让开发人员的情况变得更糟;见stackoverflow.com/q/57410051/441757 :(
标签: cors angular7 laravel-5.7