所以基本上我已经使用Lumens作为我的后端api(在localhost:8000处)。现在,在我的前端React应用程序上(在localhost:3000上),我这样向后端发出请求:
fetch(`http://localhost:8000/feedback/add`, {
method: 'POST',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
feedback: this.state.feedback,
email: this.state.email,
}),
})
但是,当我向/从其他服务器发出请求时,我一直遇到cors问题。 我一直在搜寻并尝试找出解决方案,但是似乎有很多不同的想法,例如在Lumens中使用中间件(许多不同的解决方案)或设置模式:无核心前端。但是我真的不知道该怎么办,因为它们似乎仍然会引起进一步的问题。
有人有类似的设置吗?一劳永逸地解决这个问题的方法是什么?
答案 0 :(得分:1)
我已经开发了一些以Laravel为后端的SPA。默认情况下,Laravel保护您免受未经授权的API调用的侵害,这听起来像是您正在运行的API。
我建议您允许通过第三方域调用后端的方法是使用composer安装Spatie CORS软件包:
composer require spatie/laravel-cors
此软件包与Laravel和Lumen兼容。自述文件包含您需要的所有安装说明。
安装正确后,您将可以指定哪些第三方域可以访问您的API:
'allow_origins' => [
'*', // all domains are allowed... or set them up individually:
'https://my-site-1.com',
'https://my-site-2.com',
],
Spatie CORS软件包:https://github.com/spatie/laravel-cors