有什么办法可以将Laravel的CORS api调用修复为nodejs / expressjs客户端?

时间:2019-04-08 06:21:33

标签: node.js laravel express vue.js axios

我在nodejs / expressjs中开发了一个api,当时我正在使用Postman进行测试,它可以正常工作,但是当我在Laravel中使用axios调用进行测试时,则无法正常工作。

我得到这些错误:

  

CORS策略已阻止从源“ https://api.xxxxxxx/api/v1/connectors/mysql/test”访问“ https://account.loc”处的XMLHttpRequest:请求标头字段x-csrf-token不允许访问控制标头字段中的Access-Control-Allow-Headers飞行前反应。

  

错误:网络错误
      在createError(app.js:18565)
      在XMLHttpRequest.handleError(app.js:18449)

警告:

  

跨域读取阻止(CORB)阻止了MIME类型为application / json的跨域响应https://api.xxxxxxxxx/api/v1/connectors/mysql/test。有关更多详细信息,请参见https://www.chromestatus.com/feature/5629709824032768

我试图像这样在API的标头中添加CORS:

div

我正在在线测试API网站上进行测试,该调用工作正常,所以现在我想知道Laravel配置中是否缺少某些内容。 我意识到API客户端永远不会从标头中读取令牌(仅在Laravel + axios中)。 有人可以帮我吗?

谢谢!

3 个答案:

答案 0 :(得分:1)

将cors软件包安装在node.js /express.js中

答案 1 :(得分:0)

由于x-csrf令牌已被CORS策略阻止。您必须在laravel中的 index.php文件 中添加Access-Control-Allow-Headers,您将在公共文件夹中找到该文件。将解决您的问题。现在,将以下几行粘贴到laravel的index.php文件中。

header('Access-Control-Allow-Origin: *');  
header('Access-Control-Allow-Methods: GET, PUT, POST, DELETE, OPTIONS');
header('Access-Control-Allow-Headers: Content-Type, X-XSRF-Token, Origin');

我希望这能解决您的问题

答案 2 :(得分:-1)

该消息表明x-crsf-token标头没有在快速应用中提供。您应该将其添加到您的快速应用中。或在cors中禁用预检。