vue.js 和 laravel 的 CORS 将无法工作

CORS with vue.js and laravel won't come to work

希望对laravel和vue.js新人有所帮助。我正在编写一个小应用程序,我需要通过 darksky.net.

调用天气 api

通过 php 效果很好。现在我希望它更动态地使用 vue.js。但是如果我通过 axios 进行 api 调用,我会收到以下消息:

Failed to load > https://api.darksky.net/forecast/myDarkSkyKey/37.8267,-122.4233: Response > to preflight request doesn't pass access control check: No 'Access-Control-> Allow-Origin' header is present on the requested resource. Origin > 'http://localhost:5757' is therefore not allowed access.

我红了很多关于 cors 的东西,并试图按照 here, and I even tried the "laravel-cors" package by berryvhd 的解释将 headers 包含在中间件中,但我再次 运行 反对那堵 "No 'Access-Control-> Allow-Origin' header is present" 墙然后再次。

你有什么建议或线索我做错了什么吗?我试了那么多,甚至包括这些

header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: GET, PUT, POST, DELETE, OPTIONS');

直接进入public/index.php

我知道这不是很好的方法,但我想弄清楚什么是有效的。但没有任何帮助。

我正在使用最新的 laravel master 和 vue.js 2,MAMP 和 CodeKit。

感谢您的意见! 我找到了适合我的解决方案:代理服务器,即 https://cors-anywhere.herokuapp.com/

所以我可以按如下方式向darksky提出请求: https://cors-anywhere.herokuapp.com/https://api.darksky.net/forecast/myDarkSkyKey/37.8267,-122.4233

这对我有用。只有一种不好的品味 -> 如果 herokuapp 服务器宕机了怎么办!?