Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 浏览器发送';选项';在第4节中请求而不是获取/发布_Javascript_Php_Laravel - Fatal编程技术网

Javascript 浏览器发送';选项';在第4节中请求而不是获取/发布

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

浏览器正在向跨域发送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, 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类似