Angularjs Laravel Excel仅提供CORS错误开发服务器

Angularjs Laravel Excel仅提供CORS错误开发服务器,angularjs,laravel,phpexcel,Angularjs,Laravel,Phpexcel,问题: 我向我的Laravel API发出get请求,并得到以下错误 已阻止跨源请求:同一源策略不允许读取 位于的远程资源。 (原因:缺少CORS标头“访问控制允许原点”) 我在本地和dev服务器上进行了跟踪,但我不明白为什么我只在dev服务器上遇到这个问题。我甚至确认启用了php\u-zip和php\u-xml 我的日志中没有错误 客户端角度代码 getExceptionsReport: function getExceptionsReport() { var apiBase = ap

问题:

我向我的Laravel API发出get请求,并得到以下错误

已阻止跨源请求:同一源策略不允许读取 位于的远程资源。 (原因:缺少CORS标头“访问控制允许原点”)

我在本地和dev服务器上进行了跟踪,但我不明白为什么我只在dev服务器上遇到这个问题。我甚至确认启用了
php\u-zip
php\u-xml

我的日志中没有错误

客户端角度代码

getExceptionsReport: function getExceptionsReport() {
    var apiBase = apiUrl + 'exceptions-company-reports';
    var config = {
        responseType: 'blob'
    };
    return $http.get(apiBase, config);
}
服务器端:


我想出了一种变通办法,我想比变通办法好一点,因为代码没有问题

我决定将该文件保存到服务器,然后将该文件作为响应发送,而不是依赖扩展名来执行此操作。仍然很令人沮丧,因为我永远不会真正知道错误是什么。更令人沮丧的是,我知道它可以像在我的本地服务器上一样工作。除非有人有更好的答案,否则我不会认为这个答案是正确的

    Excel::create('Filename2', function($excel) use($rows) {
        // other code

    })->save('xlsx');

    return response()->file(storage_path().'/exports/Filename2.xlsx');
我还通过
DELETE
请求立即删除该文件

public function destroy( $id ) {
    \File::Delete(storage_path().'/exports/Filename2.xlsx');
    return response()->json( [ 'success' => 'Report has been removed from server' ], 200 );
}

Laravel Excel不会为您添加标题。因此,为了避免CORS问题,添加以下标题:

Excel::create('Contactos', function($excel) use ($results) {
           ...
})->export('xlsx', ['Access-Control-Allow-Origin'=>'*']);

在我的例子中,这是因为它没有安装zip扩展


它向我显示跨来源请求被阻止,但这不是错误

此解决方案可行,但这是一个解决方法,感谢您抽出时间回答您的问题。你找到别的解决办法了吗?
Excel::create('Contactos', function($excel) use ($results) {
           ...
})->export('xlsx', ['Access-Control-Allow-Origin'=>'*']);