我正在开发一个离子项目,我在每个POST和GET请求中使用头参数。然而,当我在Android手机上测试项目并监控通过我的Android设备进入我的服务器的所有请求时,没有任何问题。但是当我部署我的离子项目并在我的网络浏览器(Chrome Web浏览器)中进行测试时,我看到每个请求都执行了两次,(当我使用POST方法时,一个没有标题参数并且没有输入,第二个是全部请求params)。 如果没有标头参数每次都忽略请求,我已经在我的服务器中解决了它。如何防止$ http(POST和GET)的重复执行? 我在angular.config js文件中设置了这些参数。
$httpProvider.defaults.headers.common['Accept'] = 'application/json; q=0.01';
$httpProvider.defaults.headers.common['Authorization-Token'] = value;
我的PHP服务以
开头header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Headers: Content-Type, Authorization-Token");
header('Access-Control-Max-Age: 60');
header('Access-Control-Allow-Methods: ["GET","POST"]');
header("Content-Type: application/json; charset=UTF-8");
答案 0 :(得分:1)
听起来确实像OPTION一样。
它应该完成,而不是携带任何有效载荷,只是在执行实际调用之前检查资源上允许的操作(post / get / whatever)。
检查这个类似问题的答案:Angular 2 HTTP POST does an OPTIONS call
答案 1 :(得分:0)
第一个请求是预检。 这是浏览器机制的一部分。 你无法避免它。
答案 2 :(得分:0)