【发布时间】:2021-02-02 23:32:37
【问题描述】:
我在显示的末尾得到一个“0”,这使得 json_encode 显示错误 - “SyntaxError: JSON.parse: unexpected non-whitespace character 在 JSON 数据的第 1 行第 30 列的 JSON 数据之后"
在控制台中它看起来像 - "<div>nothing to show<\/div>"0
我曾尝试在echo 或else 结束标记之后添加die;,正如我所读到的那样,这可以解决关于SO 的另一个问题。但是,当添加到任一位置时,控制台会记录一个“空字符串”。我将如何删除 0 或者如果 die 是正确的,它会去哪里?
function phpfuncname(){
$html_string = '';
if($vairable){
$html_string .= ' <div class="myclass">div content here</div>';
{else{
$html_string .='<div>nothing to show</div>';
echo json_encode($html_string);
}
}
查询:
jQuery.ajax({
type: 'post',
url: my_ajax.ajax_url,
dataType: 'JSON',
data: {
action: 'php_function_name',
}
})
.done(function(data) {
jQuery('#waitlist').html(data.html);
})
.fail(function(xhr, status, error) {
console.log(xhr.responseText);
alert(error);
})
【问题讨论】:
-
你的意思是在两个主要代码行之间有一个右括号吗?
-
该错误消息来自 JavaScript。你确定 PHP 没有在代码后面回显任何其他内容吗?
-
@tangentiallyperpendicular 是的,这是代码的结尾,只是右括号
-
@user15081222 else 语句的第一行:';};
您的代码 sn-ps 不匹配。您的客户端需要带有
html 属性的 JSON 对象响应,但您的 PHP 不会产生该响应。这里根本不够,显示的内容并不一致。我建议您从非常小规模开始,并从工作基础级别开始扩展您的代码,例如<?php echo json_encode(["html" => "<div>Hello, World!</div>"]); exit;
标签: javascript php jquery json