【问题标题】:No errors are returned when exception occurs, instead I get No 'Access-Control-Allow-Origin'发生异常时不返回任何错误,而是我得到 No 'Access-Control-Allow-Origin'
【发布时间】:2016-06-24 06:45:46
【问题描述】:

我已经把类似的问题发到另一个帖子了,我之所以再发这个问题是因为我对问题的理解更深,可以解释得更多。

实际问题:我正在使用来自 barryvdh/laravel-cors 的库,当发生 错误/异常 时,该库未设置headers 并且一直说 No 'Access-Control-Allow-Origin' header is present on the requested resource。

假设我有一个像这样的简单函数:

public function store(Request $request){
    return response()->json(['message' => 'coming without any problem']);
}

它工作得很好,我有语法错误的另一种情况:

public function store(Request $request){
    return response()->json(['message' => 'coming with problem'); // missing ']' before the end parenthesis....
} 

这通常应该由 Laravel 引发异常,但对我来说它显示“Access-Control-Allow-Origin”。

好吧,您可能会问,为什么我需要修复它,是因为当我的代码更复杂时,我看不到可以帮助我修复它或至少谷歌它的实际错误...

之前有人遇到过同样的问题并且知道如何解决这个问题吗? 我正在使用 Laravel 5.0

【问题讨论】:

  • 它在哪里显示“访问控制允许来源”?它只是显示在网页上吗?因为似乎需要设置该标头。
  • 它显示在浏览器 Chrome 的控制台行...

标签: php laravel cors


【解决方案1】:

这与“跨域 HTTP 请求”有关,它可能是前端和后端问题的混合。

http://www.html5rocks.com/en/tutorials/cors/

您可能需要更改 Web 服务器设置或位于脚本文件夹中的 .htaccess 文件中的某些设置。

检查这个:http://enable-cors.org/server.html

在前端方面,Mozilla 对 CORS 的态度比较保守,因此请查看他们的文档。如果你在 firefox 上做得很好,它在其​​他浏览器上也能很好地工作。

https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS

【讨论】:

  • 我已经遵循了所有这些教程,但我仍然无法修复,从我的角度来看,这似乎更像是 barryvdh/laravel-cors 库的问题。当没有异常发生时,任何请求都不会发生 CORS 问题......只有当异常发生时才会显示原始错误
  • 做一个快速测试,将此行添加到您的 .htaccess 文件中: Header add Access-Control-Allow-Origin "*"
  • 我确实添加了它,这实际上使情况变得更糟,显示 XMLHttpRequest 无法加载theventuregame.com/new/venture-backend/public/users/645。对预检请求的响应未通过访问控制检查:“Access-Control-Allow-Origin”标头包含多个值
猜你喜欢
  • 2018-01-14
  • 2017-12-29
  • 2017-06-15
  • 2021-05-12
  • 2014-10-08
  • 2012-08-16
  • 2015-06-24
  • 2018-04-16
  • 1970-01-01
相关资源
最近更新 更多