我对服务器端php脚本进行Ajax调用。
php应该返回一个json变量,如
这是:{"erreur":"Pas de diffusion可能是20-11-2020",“标题”:“扩散”}
我得到的是: s{"erreur":"Pas de diffusion可能的前卫20-11-2020",“标题”:“扩散”}
这是从哪里来的?
服务器端的代码块('DiffuseOffre.php'):
$nextdate=date("d-m-Y", time() + 24 * 60 * 60);
$message = "Pas de diffusion possible avant le " . $nextdate;
$title = "Diffusion";
$data_php = array(
"erreur" => $message,
"title" => $title
);
$retour = json_encode($data_php);
$error=json_last_error();
echo $retour;
exit();客户端的javascript:
function DiffuseOffre(envoi, tab, paquet, dest) {
var server ='/Admin/Offres/DiffuseOffre.php';
$.ajax({
url: server,
type:'Post',
dataType: 'json',
data: {
envoi: envoi,
tab: tab,
paquet:paquet,
dest: dest
}
}).done(function(response) {
alert(response);
if (response.hasOwnProperty('erreur')) {
$("#dialog-erreur").html(response.erreur);
$("#dialog-erreur").dialog("open");
$("#dialog-erreur").dialog({
width: '600px',
title: response.title
});
} else {
....
}
});
}php调试器向我展示了json编码的$retour的正确语法:
{"erreur":"Pas de diffusion possible avant le 20-11-2020","title":"Diffusion"}
在firefox调试器上,“响应”显示为“未定义”,并显示在控制台中:
Uncaught SyntaxError: unexpected token: identifier
DiffuseOffre http://localhost/Admin/Util/js/main.js:336
onclick http://localhost/Admin/Offres/diff_offre.php:1我寻找一个粘贴到我的$retour或$message var上的粘稠的's‘,但什么也没有!
有人知道如何删除那个角色吗?
发布于 2020-11-19 17:35:44
你只是想找出你的JSOn文件有什么问题吗?如果是这样的话,您可以将其复制/粘贴到https://jsoneditoronline.org/#中,然后立即看到该额外字符位于哪个位置。
发布于 2020-11-19 18:23:14
我终于拿到了。在完整的php代码中,我包含了一个具有不同参数的文件。这也是一个php文件。在最后一个结束标记(?>)之后,我找到了's‘字符。由于它的位置(在php标记之外),它不会在我的IDE中生成任何语法错误。这可能是缺乏Ctrl+s的结果。
对我来说,这不能解释为什么我发现它粘贴到返回的值(!)
只是浪费了整整一天-)
抱歉的。
https://stackoverflow.com/questions/64915875
复制相似问题