Angularjs Laravel Excel仅提供CORS错误开发服务器
问题: 我向我的Laravel API发出get请求,并得到以下错误 已阻止跨源请求:同一源策略不允许读取 位于的远程资源。 (原因:缺少CORS标头“访问控制允许原点”) 我在本地和dev服务器上进行了跟踪,但我不明白为什么我只在dev服务器上遇到这个问题。我甚至确认启用了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
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'=>'*']);