使用AngularJS忽略PHP消息

时间:2016-02-26 10:00:59

标签: javascript php angularjs

我只是想知道在使用json_decode回显响应时是否有办法绕过所有PHP消息。

我目前的问题是,如果我的PHP代码有任何回声或输出中包含的任何其他内容,除了数组我的Javascript根本不起作用。

PHP:

<?php
error_reporting(1);
$errors = array();
$data = [];
// data from angular to be handled and 
// then if all goes well set submission to true to display with ng-show
$data["submission"] = true;
header('Content-Type:application/json;');
echo json_encode($data);
?>

JS:

$scope.testProcessForm = function() {
        $http({
      method  : 'POST',
      url     : 'reg.php',
      data    : $scope.formData,
      headers : {'Content-Type': 'application/x-www-form-urlencoded'} 
     })
      .then(function(response) {
        console.log(response);
        $scope.submission = response.data.submission;

        }, function(error) {
           console.log('error', error);

我假设通过使用response.data.submission,我只能访问那里的数据,但如上所述,如果包含不在数组中的任何PHP输出,则代码会中断。

是否可以只是访问/响应$ data数组,以便它不会中断?

3 个答案:

答案 0 :(得分:1)

您可以在调用上一个echo之前使用ob_cleanhttp://php.net/manual/en/function.ob-clean.php)清除输出:

<?php
error_reporting(1);
// you also need to add ob_start()
ob_start();
$errors = array();
$data = [];
// data from angular to be handled and 
// then if all goes well set submission to true to display with ng-show
$data["submission"] = true;
header('Content-Type:application/json;');
ob_clean();
echo json_encode($data);
?>

答案 1 :(得分:1)

  

error_reporting();应设为0 =&gt; error_reporting(0);

另请注意,所有可能导致错误的可能条件都应以语法方式处理,您可以使用可在客户端读取的响应发送错误代码(使用http_response_code(404/500) )。

答案 2 :(得分:1)

error_reporting(0);

而不是

error_reporting(1);