我将此代码以JSON格式编码为返回数据:
{
"error": {
"msg":"Concurrent verifications to the same number are not allowed",
"code":10
}
}
我想访问味精,所以我将javascript写为:
$("#buttonPhoneSubmit").click(function(e) {
$("#verifyForm").show();
e.preventDefault();
$.ajax({
type: 'post',
url: './process.php',
data: $('form').serialize(),
datatype:'json',
success: function (data) {
$('#error_message').html(data.error.msg);
}
});
但它表示数据未定义。有人可以告诉我代码有什么问题吗?
谢谢!
答案 0 :(得分:2)
与Roy said一样,您拥有datatype: 'json'
而不是dataType: 'json'
。因此,我怀疑jQuery无法为您解析JSON。
虽然您可以 将其更改为dataType: 'json'
,但是更好的方法是更新PHP文件以将Content-Type: application/json
标头发送给响应:
// In the PHP, prior to sending the body of the response
header('Content-Type: application/json');
...并从您的datatype: 'json'
通话中删除ajax
。 jQuery将看到内容类型并为您解析它,这时您的代码应该可以工作(假设页面返回返回您引用的JSON)。