我想在TinyMCE编辑器中上传图像,但是我被CORS政策阻止。 我在Laravel项目中设置了CORS。其他功能可以从Laravel项目中获取数据
这些是我的Javascript设置:
uploadImg(blobInfo, success, failure) {
let formData = new FormData();
formData.append("file", blobInfo.blob(), blobInfo.filename());
this.axios({
method: "post",
url: "/test2",
headers: {
"Content-Type": "multipart/form-data"
},
withCredentials: false,
data: formData
}).then(res => {
console.log(res.data);
});
}
这些是我的CORS设置:
public function handle(Request $request, \Closure $next)
{
$this->headers = [
'Access-Control-Allow-Methods' => 'GET, POST, PUT, DELETE',
'Access-Control-Allow-Headers' => $request->header('Access-Control-Request-Headers'),
'Access-Control-Allow-Credentials' => 'true',
'Access-Control-Max-Age' => 1728000
];
$this->allow_origin = [
'http://localhost',
'http://localhost:8080',
'http://localhost:8000',
];
$origin = isset($_SERVER['HTTP_ORIGIN']) ? $_SERVER['HTTP_ORIGIN'] : '';
if (!in_array($origin, $this->allow_origin) && !empty($origin)){
return new Response('Forbidden', 403);
}
if ($request->isMethod('options'))
return $this->setCorsHeaders(new Response('OK', 200), $origin);
$response = $next($request);
$methodVariable = array($response, 'header');
if (is_callable($methodVariable, false, $callable_name)) {
return $this->setCorsHeaders($response, $origin);
}
return $response;
}
/**
* @param $response
* @return mixed
*/
public function setCorsHeaders($response, $origin)
{
foreach ($this->headers as $key => $value) {
$response->header($key, $value);
}
if (in_array($origin, $this->allow_origin)) {
$response->header('Access-Control-Allow-Origin', $origin);
} else {
$response->header('Access-Control-Allow-Origin', '');
}
return $response;
}
这是错误消息: error message
谁能告诉我我在哪里犯了错误?谢谢