Bru*_*ler 4 php ajax jquery json
我想一个形式发送给使用PHP $.ajax中的jQuery.我将整个事件作为JSON发送,但是,当我尝试获得响应时,我得到'parsererror'.我究竟做错了什么?
jQuery片段:
$("form").submit(function(){
$.ajax({type: "POST",
url: "inscrever_curso.php",
data: {cpf : $("input#cpf").val(),nome : $("input#nome").val()},
dataType: "json",
success: function(data){
alert("sucesso: "+data.msg);
},
error: function(XMLHttpRequest, textStatus, errorThrown){
alert ("erro: "+textStatus);
}
});
return false;
});
Run Code Online (Sandbox Code Playgroud)
PHP:
<?php
$return[msg]="Testing, testing.";
echo json_encode($return);
?>
Run Code Online (Sandbox Code Playgroud)
我不知道这是否是您的问题的原因,但这是关于您的PHP代码的一件事:
$return[msg]="Testing, testing.";
echo json_encode($return);
Run Code Online (Sandbox Code Playgroud)
这样做,使用E_NOTICE error_reporting级别,您将获得:
Notice: Use of undefined constant msg - assumed 'msg'
Run Code Online (Sandbox Code Playgroud)
如果在服务器上启用并显示通知,则会导致输出无效JSON(输出包含JSON字符串之前的错误消息).
要避免该通知,您必须使用以下语法:
$return['msg']="Testing, testing.";
echo json_encode($return);
Run Code Online (Sandbox Code Playgroud)
请注意引号msg:您正在创建的数组元素的键是一个字符串常量,因此,它用引号括起来.
如果你没有输入这些引号,PHP会搜索一个名为"msg" 的已定义常量,该常量可能不存在.
有关这方面的更多信息,您可以查看本手册的这一部分:为什么$ foo [bar]错了?.
(我不确定它会解决你的问题,但无论如何都要知道.)