问题

我在我的网站上实施了一个AJAX请求,我从网页上调用它.它总是返回 200 OK ,但jQuery会执行错误事件.我试过很多事情,但不能找出这个问题.我在下面添加我的代码:

jQuery代码

var row = "1";
var json = "{'TwitterId':'" + row + "'}";
$.ajax({
    type: 'POST',
    url: 'Jqueryoperation.aspx?Operation=DeleteRow',
    contentType: 'application/json; charset=utf-8',
    data: json,
    dataType: 'json',
    cache: false,
    success: AjaxSucceeded,
    error: AjaxFailed
});
function AjaxSucceeded(result) {
    alert("hello");
    alert(result.d);
}
function AjaxFailed(result) {
    alert("hello1");
    alert(result.status + ' ' + result.statusText);
}

JqueryOpeartion.aspx的C#代码

protected void Page_Load(object sender, EventArgs e) {
    test();
}
private void test() {
    Response.Write("<script language='javascript'>alert('Record Deleted');</script>");
}

成功删除后,我需要("记录已删除")字符串.我可以删除内容,但我没有收到此消息.这是正确的,或者我做错了什么.请建议正确的解决方法.



解决方法

您的AJAX请求包含以下设置:

dataType: "json"

文档说明jQuery:

Evaluates the response as JSON and returns a JavaScript object. (...) The JSON data is parsed in a strict manner; any malformed JSON is rejected and a parse error is thrown.

这意味着如果服务器以 200 OK 状态返回无效的JSON,那么jQuery触发错误函数并将 textStatus 参数设置为"parsererror"代码>.

解决方案:确保服务器返回有效 JSON.值得注意的是,空响应也被认为是无效的JSON;您可以返回 {} null ,例如验证为JSON.

您可以在 jsonlint.com 上检查json是否有效




相关问题推荐