我有一个页面可以执行一些操作然后输出JSON响应。这个页面是从jQuery Ajax调用中调用的,但是当我在Firefox中检查帖子时,我得到了无效的JSON,我不明白。
以下是页面的代码
Write("{status: 'ERROR', StatusCode: '" + result.StatusCode + "',payload: ''}");
输出看起来像这样(看起来对我?)
{status: 'ERROR', StatusCode: '200',payload: ''}
这是我的AJAX电话
$.ajax({
type:"POST",
url: copyBUURL,
data: { action: "copy_bu", bu_id: selected_bu.id, bu_name: selected_bu.name, new_parent: new_parent_bu.id, new_parent_name: new_parent_bu.name, new_name: $("#bu_name").val(), from_name: $("#bu_fromname").val(), email: $("#bu_email").val() },
contentType:"application/x-www-form-urlencoded; charset=utf-8",
dataType:"json",
success:function(data){
if(!data)
{
alert("There was an error processing your request");
return false;
}
$("#createBtn").removeAttr("disabled");
$("#cancelBtn").removeAttr("disabled");
console.log("Data response: " + JSON.stringify(data));
//xhr_users Landing Page
showUrlInDialog('https://pages.umusic-mail.com//page.aspx?QS=472529ec60bdf32a5a46a47dceedf4ab0793800df7757ecbd2298ad0f8bc85eb&bu_id=' + data.bu_id + '&bu_name=' + data.bu_name);
if (data.status == "OK") {
$("#msgBox").css("height", "80px");
$("#result").html("The Business Unit was successfully copied!<br /><br />Users will be assigned very shortly. (You will see a dialog window pop up in this page).");
$("#loader").attr("src", "https://dl.dropbox.com/u/417891/aeg-checkmark.png").css("display", "inline");
hideContainer();
resetForm();
$("#business_units").jstree("refresh");
} else if (data.status.toUpperCase() == "ERROR") {
displayError(data.payload);
$("#msgBox").attr("class", "msgBoxOff");
$("#result").html("");
$("#loader").css("display", "none");
} else {
// something way wrong
}
},
error: function (xhr, ajaxOptions, thrownError) {
console.log(xhr.status);
console.log(thrownError);
}
});
答案 0 :(得分:1)
你需要在这样的所有内容中加上双引号:
{
"status": "ERROR",
"StatusCode": "200",
"payload": ""
}
或者这个:
{
"status": "ERROR",
"StatusCode": 200,
"payload": ""
}
如果您希望StatusCode
为整数
另外,如果您将来遇到问题,请考虑使用JSONLint验证您的json。