在我的应用程序中,我使用$ http post请求,因为在服务器端,所有PHP服务只接受post请求。 PHP Web服务位于godaddy。
在连续的$ http发布请求之后(通常在10-20请求之后),我开始从服务器获取ERR_EMPTY_RESPONSE。我做了一些研究,发现这是因为服务器出现安全问题以防止攻击。 Apache服务器的mod_sec设置会导致此问题,但我没有权限覆盖它。
我决定测试一下,如果这个问题是由POST请求专门引起的。所以我写了一个简单的PHP文件和AngularJS测试脚本。如果我使用GET请求,我不会收到任何ERR_EMPTY_RESPONSE错误。在客户端AngularJS或任何Apache服务器设置上是否有任何$ http POST设置我可以放在.htaccess文件中,所以服务器不会阻止POST请求?
PHP脚本:
echo json_encode(array("item"=>"dummy test service."));
?>
AngularJS脚本:
var success_count = 0;
var method = 'GET'; //try 'POST' and you will get ERR_EMPTY_RESPONSE
stop = $interval(function() {
$http({
method : method,
url : 'test.php'
}).then(function successCallback(response) {
console.log(success_count);
success_count++;
}, function errorCallback(response) {
console.log("error after "+success_count+" successful request.");
success_count = 0;
});
}, 200);