Laravel 5 拉威尔+;Vue.js-具有特定地址的CORS问题? 拉威尔5.6 Vue 2.5.7 谷歌浏览器

Laravel 5 拉威尔+;Vue.js-具有特定地址的CORS问题? 拉威尔5.6 Vue 2.5.7 谷歌浏览器,laravel-5,cors,vuejs2,Laravel 5,Cors,Vuejs2,嗨,我正在努力理解CORS的问题,我仍在试图找到一种消费https://api.coinmarketcap.com/v2/listings/,我收到以下错误: (索引):1未能加载https://api.coinmarketcap.com/v2/listings/: 对飞行前请求的响应未通过访问控制检查:请求的资源上不存在“访问控制允许来源”标头。起源'http://tours.mine因此,不允许访问。 但是如果我转到https://jsonplaceholder.typicode.com/p

嗨,我正在努力理解CORS的问题,我仍在试图找到一种消费
https://api.coinmarketcap.com/v2/listings/
,我收到以下错误:

(索引):1未能加载https://api.coinmarketcap.com/v2/listings/: 对飞行前请求的响应未通过访问控制检查:请求的资源上不存在“访问控制允许来源”标头。起源'http://tours.mine因此,不允许访问。

但是如果我转到
https://jsonplaceholder.typicode.com/posts/
一切正常

  • 使用此选项并因此禁用了chrome的CORS后,我收到了一个新错误:
    飞行前响应中的访问控制允许标头不允许请求标头字段X-CSRF-TOKEN。
    仅在此地址上接收:
    https://api.coinmarketcap.com/v2/listings/

  • http://tours.mine
    -是我在httpd/vhosts.conf中设置的本地名称

  • 我尝试了BarryVdh cors lib,还创建了自己的cors中间件nada

流量:

在web.php路径中:

Route::get('/', function () {
    return view('welcome');
});
在welcome.blade中,我在两个元中传递csrf:

  <meta name="csrf-token" content="{{ csrf_token() }}">
非常感谢你的帮助


Bud

如果您正在使用this(),请确保在mid中关闭csrf令牌

您尝试使用的url不能在跨域javascript中使用,因为它不提供“Access Control Allow Origin”类型的响应头。 在这种情况下,如果您无法控制API服务器,那么您将被迫使用其他非常规方式,因为如果域与您的域不匹配,所有现代浏览器都将阻止对该站点的任何请求

您有两个备选方案来解决此问题:

  • 使用同一域的代理将所有调用重定向到该服务器
  • 对服务器进行ajax调用,然后使用例如

  • 这应该是一个评论,而不是一个答案。
    <script>
        window.Laravel = <?php echo json_encode([
            'csrfToken' => csrf_token(),
        ]); ?>
    </script>
    
    <div class="container" id="app">
        <coin-add-component></coin-add-component>
    </div>
    
    mounted(){
        this.axios.get('https://api.coinmarketcap.com/v2/listings/')
            .then(response => {
                console.log(response.data);
            })
            .catch(e => {
                this.errors.push(e)
            })
    }