gpt4 book ai didi

angularjs - 跨域图片上传 Angular+laravel

转载 作者:行者123 更新时间:2023-12-02 22:17:30 25 4
gpt4 key购买 nike

我一直在努力解决服务器上的图像上传问题。我正在使用ngFileUpload在前端。但我总是得到

“对预检请求的响应未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin” header ”

文件上传的 Angular 代码:

 var uploadFile = function (file) {
if (file) {

if (!file.$error) {
Upload.upload({
url: baseUrl+'upload',
file: file


}).progress(function (evt) {
var progressPercentage = parseInt(100.0 * evt.loaded / evt.total);
//console.log(evt.total);
}).success(function (data, status, headers, config) {
$timeout(function() {

console.log(data);
console.log(status);
if(status==200)
{

logo_path = data.logo_path;

}

});
});
}

}
};

在 Laravel 上我已经配置了 CORS,如下所示:

public function handle($request, Closure $next)
{
header("Access-Control-Allow-Origin: http://localhost:8001/");

// ALLOW OPTIONS METHOD
$headers = [
'Access-Control-Allow-Methods'=> 'POST, GET, OPTIONS, PUT, DELETE',
'Access-Control-Allow-Headers'=> 'Content-Type, X-Auth-Token, Origin'
];
if($request->getMethod() == "OPTIONS") {
// The client-side application can set only headers allowed in Access-Control-Allow-Headers
return Response::make('OK', 200, $headers);
}

$response = $next($request);
foreach($headers as $key => $value)
$response->header($key, $value);
return $response;
}

正常的跨域 POST 请求工作正常。即 $http.post()。我已经尝试了许多不同的 Angular 标题变体,但没有任何帮助。此外,OPTIONS 请求返回 200 OK,但仍显示预检响应失败消息。谁能帮我进一步调试这个问题?

最佳答案

尝试添加:

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

在 bootstrap/app.php 中您还可以在此处插入访问控制可能需要的任何其他 header 。

关于angularjs - 跨域图片上传 Angular+laravel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34580415/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com