Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 服务器阻止POST但不阻止GET请求?_Javascript_Php_Angularjs_Post_Get - Fatal编程技术网

Javascript 服务器阻止POST但不阻止GET请求?

Javascript 服务器阻止POST但不阻止GET请求?,javascript,php,angularjs,post,get,Javascript,Php,Angularjs,Post,Get,在我的应用程序中,我使用$http post请求,因为在服务器端,所有PHP服务只接受post请求。PHP web服务位于godaddy中 在一些连续的$http post请求之后(通常在10-20个请求之后),我开始从服务器获得ERR_EMPTY_响应。我做了一些研究,发现这是因为服务器存在安全问题以防止攻击。Apache服务器的mod_sec设置导致此问题,但我没有权限覆盖它 我决定测试一下,这个问题是否是由POST请求引起的。所以我编写了一个简单的PHP文件和AngularJS测试脚本。如

在我的应用程序中,我使用$http post请求,因为在服务器端,所有PHP服务只接受post请求。PHP web服务位于godaddy中

在一些连续的$http post请求之后(通常在10-20个请求之后),我开始从服务器获得ERR_EMPTY_响应。我做了一些研究,发现这是因为服务器存在安全问题以防止攻击。Apache服务器的mod_sec设置导致此问题,但我没有权限覆盖它

我决定测试一下,这个问题是否是由POST请求引起的。所以我编写了一个简单的PHP文件和AngularJS测试脚本。如果我使用GET请求,我不会得到任何ERR\u EMPTY\u响应错误。客户端AngularJS上是否有任何$http POST设置,或者我可以将任何Apache服务器设置放入.htaccess文件中,以便服务器不会阻止POST请求

PHP脚本:

<?php 
       echo json_encode(array("item"=>"dummy test service."));
 ?>

这是因为跨域请求策略。如果您想限制来自不在同一域中的其他页面的脚本,这将有助于您做到这一点。但在API的情况下会发生什么,它们如何授予接受其他页面请求的权限?。 所以要做到这一点,他们使用访问控制选项,在您的特定情况下,访问控制允许方法必须设置为just GET method。所以它基本上只接受GET请求


但是,如果您想专门使用POST请求,请使用CURL(使用PHP或其他服务器端语言),它可以传递同源策略,并可以通过POST请求发送和接收数据

这是因为跨域请求策略。如果您想限制来自不在同一域中的其他页面的脚本,这将有助于您做到这一点。但在API的情况下会发生什么,它们如何授予接受其他页面请求的权限?。 所以要做到这一点,他们使用访问控制选项,在您的特定情况下,访问控制允许方法必须设置为just GET method。所以它基本上只接受GET请求


但是,如果您想专门使用POST请求,请使用CURL(使用PHP或其他服务器端语言),它可以传递同源策略,并可以通过POST请求发送和接收数据

如果安全apache模块处于活动状态,则您无法对其执行任何操作。您只能要求主机提供程序将限制设置得更高。@CharlotteDunois甚至没有.htaccess文件?是的,我尝试了mod_sec.htaccess设置。但在我的情况下,由于权限的原因,它不起作用。如果安全apache模块处于活动状态,则您无法对其执行任何操作。您只能要求主机提供程序将限制设置得更高。@CharlotteDunois甚至没有.htaccess文件?是的,我尝试了mod_sec.htaccess设置。但在我的情况下,由于权限问题,它不起作用。
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);