我在我的网站上实现了一个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); }
C#代码为JqueryOpeartion.aspx
protected void Page_Load(object sender,EventArgs e) { test(); } private void test() { Response.Write("<script language='javascript'>alert('Record Deleted');</script>"); }
我需要成功删除后(“记录已删除”)字符串。我可以删除内容,但我没有收到此消息。这是正确的,或者我做错了什么。请建议正确的方法来解决这个问题。
您的AJAX请求包含以下设置:
dataType: "json"
documentation说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是否有效