提问人:Yaroslav Borodii 提问时间:5/2/2020 最后编辑:Lajos ArpadYaroslav Borodii 更新时间:5/2/2020 访问量:58
PHP 在 '{' JSON [closed] 之前返回符号 'a'
PHP returns symbol 'a' before '{' JSON [closed]
问:
我有这个PHP代码:
function _return($message, $status=200) {
$return = json_encode([
"message" => strval($message),
"status" => intval($status)
], JSON_UNESCAPED_UNICODE);
echo($return);
exit();
}
在浏览器控制台中返回a{"message":"URL needed!","status":400}
我不明白符号“a”是从哪里来的......
因此,AJAX 无法处理传入数据。(调用错误)
$.ajax({
url: '/',
type: 'POST',
data: data,
processData: false,
contentType: false,
dataType: 'json',
beforeSend: function() {
button.attr('disabled', true);
},
success: function(result, status, xhr) {
console.log(result());
console.log(xhr.responseText);
result = JSON.parse(result);
if(result['status'] === 400) {
errorNotification(result['message']);
}
successNotification("Successful!");
button.attr('disabled', false);
},
error: function(error) {
errorNotification("Woops... Error!");
console.log(error.responseText);
button.attr('disabled', false);
}
});
答:
0赞
Lajos Arpad
5/2/2020
#1
首先,您需要找出这个角色是否起源于json_encode(它不是起源于那里,但由于您不知道这一点,因此您需要采取的逻辑步骤才能了解其工作原理如下):
function _return($message, $status=200) {
$return = json_encode([
"message" => strval($message),
"status" => intval($status)
], JSON_UNESCAPED_UNICODE);
echo("TEEEEEST".$return);
exit();
}
如果响应是
TEEEEESTa{“message”:“需要 URL!”,“status”:400}
(事实并非如此),那么这将是生成返回的错误。实际上,响应将是
aTEEEEEST{“message”:“需要 URL!”,“status”:400}
这意味着在项目的其他地方,你有一个回声,或者你的PHP代码标签之间有一个HTML,它由一个字母组成。为了找到发生这种情况的位置,您需要找出执行的PHP代码是什么,并回显不同的文本。如果某些文本在 a 之前被回显出来,则意味着问题发生在稍后。如果在 a 之后回显了某些内容,则在问题发生后执行该代码行。
评论
a
json_encode