在我的應用程序,我使用,因爲在服務器端$ HTTP POST請求的所有PHP服務只接受POST請求。 PHP web服務位於godaddy。服務器塊POST但不GET請求?
一些連續$ HTTP POST請求(通常在10-20的要求)後,我開始從服務器獲取ERR_EMPTY_RESPONSE。我做了一些研究,發現這是因爲服務器的安全問題,以防止攻擊。 Apache服務器的mod_sec設置導致這個問題,但我沒有權限覆蓋它。
我決定測試,如果這個問題是專門由POST請求引起的。所以我寫了一個簡單的PHP文件和AngularJS測試腳本。如果我使用GET請求,我不會收到任何ERR_EMPTY_RESPONSE錯誤。在客戶端AngularJS上有沒有$ http POST設置或者我可以放在.htaccess文件中的任何Apache服務器設置,所以服務器不會阻止POST請求?
PHP腳本:
<?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);
如果安全Apache模塊處於活動狀態,那麼你不能做任何事情。您只能要求主機提供商設置更高的限制。 –
@CharlotteDunois甚至沒有.htaccess文件? –
http://stackoverflow.com/a/12928404/3885509 –