我有一个运行在http://localhost:4200的Angular应用和一个运行在http://localhost:8000的流明API。
我使用barryvdh / laravel-cors并且我的所有POSTS请求都返回" No' Access-Control-Allow-Origin'标头出现在请求的资源上。"
有关于此的任何线索?我的Angular数据库服务:
@Injectable()
export class DatabaseService {
constructor(private http: Http) { }
get(url: string) {
return this.http.get("http://localhost:8000/" + url)
.map(response => response.json());
}
post(url: string, data) {
return this.http.post("http://localhost:8000/"+ url, data)
.map(response => response.json());
}
}
所有GET请求都能正常运行。
答案 0 :(得分:1)
启用apache mod_headers将解决此问题。 在命令下运行
答案 1 :(得分:0)
这取决于您传递的数据以及您在后端处理的方式。你尝试过字符串数据
吗?JSON.stringify(data)
post(url: string, data) {
return this.http.post("http://localhost:8000/"+ url, JSON.stringify(data))
.map(response => response.json());
}
答案 2 :(得分:0)
您需要授予对Lumen上Angular服务器的访问权限
如果您不使用CORS,只需在/bootstrap/app.php上添加此行
header('Access-Control-Allow-Origin: http://localhost:4200/');
或针对所有人:
header('Access-Control-Allow-Origin: *');
如果使用的是CORS,则必须在App \ Http \ Middleware \ CorsMiddleware(或任何称为CORS文件的文件)的标头上设置相同的内容
$headers = [
'Access-Control-Allow-Origin' => '*',
'Access-Control-Allow-Methods' => 'POST, GET, OPTIONS, PUT, DELETE',
'Access-Control-Allow-Credentials' => 'true',
'Access-Control-Max-Age' => '86400',
'Access-Control-Allow-Headers' => 'Content-Type, Authorization, X-Requested-With'
];