我只是想知道在使用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数组,以便它不会中断?
答案 0 :(得分:1)
您可以在调用上一个echo之前使用ob_clean
(http://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);