成功登录API请求后,Angular会为每个API调用触发额外的OPTION请求

时间:2018-01-30 09:24:48

标签: angular rest codeigniter http preflight

我使用codeigniter作为后端和ANGULAR 4作为基于REST的前端客户端。问题是每个请求都发送两次ONE使用OPTION而其他请求使用GET或POST。

控制台网络标签的屏幕截图。

https://imgur.com/a/xpNAU

我在控制台中为每个其他API请求得到了这个,一旦我第一次成功登录api。如何停止额外的OPTION请求,因为我的服务器没有编码来处理此请求。我知道它必须使用预检请求选项,我不知道如何解决它。

更新

由于设置了以下自定义标题,我正在使用其他OPTIONS请求进行触发。

         this.headers.append('sessionname','7datfaaj6slo7p7htubtutn970l20lfd'); 

现在,我在服务器端启用了CORS,并将此条件设置为OPTIONS请求的正确输出。

       $method = $_SERVER['REQUEST_METHOD']; if($method == "OPTIONS") { die(); }

所以它工作正常,但现在我的问题是它是完美的方式来处理这个恼人的OPTIONS请求吗?

2 个答案:

答案 0 :(得分:1)

如下面的答案所述,发送OPTIONS的不是REST客户端,而是浏览器,因此您最好更新服务器端代码以满足浏览器的需求。

OPTIONS Explanation

答案 1 :(得分:-1)

您可以使用此插件:CORS Chrome Extension