私のアプリの中では、サーバー側ですべてのPHPサービスが投稿要求を受け付けるだけなので、私は$ http投稿要求を使用します。 PHP Webサービスはgodaddyにあります。サーバはPOSTではなくGET要求をブロックしますか?
いくつかの連続した$ http投稿要求(通常は10-20要求後)の後、私はサーバーからERR_EMPTY_RESPONSEを取得し始めます。私はいくつかの調査を行い、これがサーバからのセキュリティ問題が攻撃を防ぐためであることが判明しました。 Apacheサーバーのmod_sec設定はこの問題を引き起こしますが、私はそれを上書きする権限を持っていません。
この問題が具体的にPOST要求によって引き起こされたかどうかをテストすることにしました。だから私は簡単なPHPファイルとAngularJSテストスクリプトを書いた。 GET要求を使用すると、ERR_EMPTY_RESPONSEエラーは発生しません。サーバー側でPOST要求をブロックしないように、クライアントサイドのAngularJSまたは.htaccessファイルに置くことができるApacheサーバー設定の$ http 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 –