Php 使用jQuery Ajax时,返回的JSON似乎混淆了
我有一个php脚本,它有以下行:Php 使用jQuery Ajax时,返回的JSON似乎混淆了,php,jquery,ajax,json,api,Php,Jquery,Ajax,Json,Api,我有一个php脚本,它有以下行: echo json_encode(array('success'=>'true','userid'=>$userid, 'data' => $array)); 它返回以下内容: { "success": "true", "userid": "1", "data": [ { "id": "1", "name": "Trigger", "image": "", "subtit
echo json_encode(array('success'=>'true','userid'=>$userid, 'data' => $array));
它返回以下内容:
{
"success": "true",
"userid": "1",
"data": [
{
"id": "1",
"name": "Trigger",
"image": "",
"subtitle": "",
"description": "",
"range1": null,
"range2": null,
"range3": null
},
{
"id": "2",
"name": "DWS",
"image": "",
"subtitle": "",
"description": "",
"range1": null,
"range2": null,
"range3": null
}
]
}
但当我调用jQuery ajax时,如下所示:
$.ajax({
type: 'POST',
url: 'url',
crossDomain: true,
data: {name: name},
success: function(success, userid, data) {
if (success = true) {
document.write(userid);
document.write(success);
}
}
});
userid
是“success”。实际的成功
一个人起作用,它的正确
是否返回格式不正确的数据?还是仅仅是我的代码
提前感谢,,
所有成功回调所采用的参数都在中定义: 响应在作为参数传递给它之前不会被拆分。必须从第一个参数中提取值 您还需要将
头('Content-Type:application/json')
添加到PHP中,以便jQuery在填充第一个参数时将响应解析为json而不是HTML
然后,您可以测试数据.success
并访问数据.userid
(以及数据.data
,该数组将被分配给返回数据中的数据
属性…您可能希望重命名它以避免混淆)
请注意,当您测试它时,您需要使用
==
(或=
),而不是您当前使用的*assignment*运算符。还请注意,JSON响应返回的是字符串“true”
,而不是布尔值true成功回调所采用的参数定义在:
响应在作为参数传递给它之前不会被拆分。必须从第一个参数中提取值
您还需要将头('Content-Type:application/json')
添加到PHP中,以便jQuery在填充第一个参数时将响应解析为json而不是HTML
然后,您可以测试数据.success
并访问数据.userid
(以及数据.data
,该数组将被分配给返回数据中的数据
属性…您可能希望重命名它以避免混淆)
请注意,当您测试它时,您需要使用
==
(或=
),而不是您当前使用的*assignment*运算符。还要注意的是,JSON响应返回的是字符串“true”
,而不是布尔值true您不能在Success
中添加自己的参数。像这样更改代码
success: function(response) {
if (response.success == true) {
document.write(response.userid);
document.write(response.success);
}
}
根据jQuery文档中的success()
成功(数据、文本状态、jqXHR)
请求成功时要调用的函数。函数传递三个参数:从服务器返回的数据,根据dataType参数格式化;描述状态的字符串;和jqXHR(在jquery1.4.x中,XMLHttpRequest)对象。从jQuery1.5开始,success设置可以接受一系列函数。每个函数将依次调用
您不能在Success
中添加自己的参数。像这样更改代码
success: function(response) {
if (response.success == true) {
document.write(response.userid);
document.write(response.success);
}
}
根据jQuery文档中的success()
成功(数据、文本状态、jqXHR)
请求成功时要调用的函数。函数传递三个参数:从服务器返回的数据,根据dataType参数格式化;描述状态的字符串;和jqXHR(在jquery1.4.x中,XMLHttpRequest)对象。从jQuery1.5开始,success设置可以接受一系列函数。每个函数将依次调用
其他问题-success=true
。你的意思可能是success==true
,但应该是success
。顺便说一句,这就是为什么你从不写==true
。对不起,我在输入问题时输入了错别字-success=true
。你的意思可能是success==true
,但应该是success
。顺便说一句,这就是为什么你从来不写==true
。对不起,我在打问题的时候打错了