In meiner App verwende ich HTTP-Anfragen, da auf der Serverseite alle PHP-Dienste nur Post-Anfragen akzeptieren. PHP-Webdienste befinden sich in godaddy.Server blockiert POST, aber keine GET-Anfragen?
Nach einigen aufeinanderfolgenden http http Post-Anfragen (in der Regel nach 10-20 Anfrage), bekomme ich ERR_EMPTY_RESPONSE vom Server. Ich habe einige Nachforschungen angestellt und festgestellt, dass dies auf ein Sicherheitsproblem des Servers zurückzuführen ist, um Angriffe zu verhindern. Apache Server mod_sec Einstellung verursacht dieses Problem, aber ich habe keine Berechtigungen, es zu überschreiben.
Ich entschied mich zu testen, ob dieses Problem speziell durch POST-Anfragen verursacht wird. Also schrieb ich eine einfache PHP-Datei und ein AngularJS-Testskript. Wenn ich GET-Anfrage verwende, bekomme ich keine ERR_EMPTY_RESPONSE Fehler. Gibt es auf der Client-Seite AngularJS irgendwelche $ http POST-Einstellungen oder irgendeine Apache-Server-Einstellung, die ich in .htaccess-Datei platzieren kann, so blockiert der Server POST-Anfragen nicht?
PHP-Skript:
<?php
echo json_encode(array("item"=>"dummy test service."));
?>
AngularJS Skript:
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);
Wenn ein Sicherheits-Apache-Modul aktiv ist, können Sie nichts dagegen tun. Sie können den Host-Anbieter nur bitten, das Limit höher zu setzen. –
@CharlotteDunois nicht einmal mit einer .htaccess-Datei? –
http://StackOverflow.com/a/12928404/3885509 –