访问控制允许原点"标头在角度拉拉维尔应用程序上存在错误



我为angular作为前端和laravel作为后端编写了简单的代码。我的控制器中有代码,例如:

后控制器.php

public function store(Request $request)
{
Post::create([
'post_name'=>$request->post_name,
'post_text'=>$request->post_text,
]);
return response()->json(['msg'=>'Post Created','success'=>true]);
}

在我的路由.php文件中,我有:

Route::group([
'middleware' => ['cors'],
], function ($router) {
//Add you routes here, for example:
Route::resource('post','APIPostController');  
});

和在角度的post.service.ts中

addPost(data) {
const headers = new HttpHeaders({
'Accept': 'application/json',
'Content-Type':'application/json'
});
let postdata={
'post_name':data['post_name'],
'post_text':data['post_text']
};
console.log(postdata);
return this.http.post('http://192.168.1.100/crud/api/post',postdata,{ headers: headers });
}

执行后,我收到如下错误:

无法加载 http://192.168.1.100/crud/api/post:对预检请求的响应未通过访问控制检查:请求的资源上不存在"访问控制允许源"标头。因此,不允许访问源"http://localhost:4200"。

这可能是由于,

  1. 您的请求已被服务器拒绝。(如果是这样,则必须在服务器端启用跨源(
  2. 您的请求存在一些问题。

与您的方案尝试相关, 在 json 中的内容类型旁边传递Access-Control-Allow-Origin: *并检查服务器配置。

通过添加chrome扩展名Moesif Origin&CORS Changer解决了这个问题

最新更新