Javascript 浏览器发送';选项';在第4节中请求而不是获取/发布
浏览器正在向跨域发送API请求中的Javascript 浏览器发送';选项';在第4节中请求而不是获取/发布,javascript,php,laravel,Javascript,Php,Laravel,浏览器正在向跨域发送API请求中的OPTIONS而不是GET/POST请求。我在后端使用Laravel5.4,在前端使用Angular 4 我在RouteMiddle软件中添加了COR: return $next($request) ->header('Access-Control-Allow-Origin', '*') ->header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OP
OPTIONS
而不是GET/POST
请求。我在后端使用Laravel5.4,在前端使用Angular 4
我在RouteMiddle软件中添加了COR:
return $next($request)
->header('Access-Control-Allow-Origin', '*')
->header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS');
api.php(路由):
Route::group(['middleware' => ['cors']], function(){
Route::post('login', 'ApiController@login');
Route::post('register', 'ApiController@register');
Route::post('userInfo', 'ApiController@get_user_details');
});
可能的解决方案是什么?浏览器总是发送
选项
请求,这实际上是一个飞行前请求,是安全性度量。当服务器理解此请求并用200代码响应时,浏览器将实际请求(使用实际方法GET、POST…)发送到服务器
您的服务器需要了解如何答复飞行前请求(使用选项方法的请求)
在这里,您可以找到如何在nodeJS服务器中实现这一点
module.exports = function(req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "*");
res.header("Access-Control-Allow-Methods", "GET, POST", "PUT", "DELETE");
next();
};
浏览器总是发送
选项
请求,这实际上是一个飞行前请求,是一种安全措施。当服务器理解此请求并用200代码响应时,浏览器将实际请求(使用实际方法GET、POST…)发送到服务器
您的服务器需要了解如何答复飞行前请求(使用选项方法的请求)
在这里,您可以找到如何在nodeJS服务器中实现这一点
module.exports = function(req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "*");
res.header("Access-Control-Allow-Methods", "GET, POST", "PUT", "DELETE");
next();
};
也就是说,如果您可以编辑服务器的响应以发送适当的CORS响应,但是许多服务器您将没有机会-那么在这种情况下您会怎么做-假设您使用的是角度前端-这与任务类似,如果您可以编辑服务器的响应以发送适当的CORS响应,但是很多服务器都没有这样的机会,那么在这种情况下你会怎么做呢?比如说你使用的是一个有角度的前端,这与ques类似