使用超级代理和Lumen API的CORS策略阻止的请求

问题描述 投票:-3回答:1

我已经使用PHP Lumen框架创建了REST API,我使用以下方法删除了所有的CORS限制以进行开发:

// Enable CORS on all API routes
header('Access-Control-Allow-Origin: *');
header("Access-Control-Expose-Headers: Content-Length, X-JSON");
header('Access-Control-Allow-Methods: GET, POST, PATCH, PUT, DELETE, OPTIONS');
header('Access-Control-Allow-Headers: Origin, Authorization, Lang, Content-Type, X-Auth-Token');

然后在前端,我使用库superagent对其进行调用。例如,我称路线为POST http://127.0.0.1:8000/auth/register

superagent.post('http://127.0.0.1:8000/auth/register').send({
  name: 'name',
  email: '[email protected]',
  password: '1234Test'
}).type('application/json')
  .end((err, res) => {
    console.log(res)
    console.log(err)
  })

可悲的是,我收到了我不明白的CORS错误消息:

已从起源'http://127.0.0.1:8000/auth/register'到'http://localhost:9000'对XMLHttpRequest的访问已被CORS策略阻止:对预检请求的响应未通过访问控制检查:它没有HTTP正常状态。

我进行了一些研究,但找不到错误It does not have HTTP ok status的任何东西,并且在Postman上测试了相同的请求,除了正常行为外,没有其他错误。

有人知道我该如何解决?在哪里可以找到有关此类错误的文档?

javascript php cors lumen superagent
1个回答
2
投票

我很好奇,为什么您要自己“手动”设置标题,而不是使用一些现有的和经过验证的CORS-Middlwares,它们将为您做所有的魔术。除非您在学习案例中需要它,否则我将避免重新发明轮子。

这里是stackoverflow上的副本:

Enable CORS in lumen

这里是有关流明中间件的官方文档:

https://lumen.laravel.com/docs/7.x/middleware

这里有一些结构良好且知名的中间件将为您完成这项工作:

© www.soinside.com 2019 - 2024. All rights reserved.