Ajax请求返回200 OK,但是会引发错误事件而不是成功

我已经在我的网站上实现了Ajax请求,并且正在从网页调用端点。它总是返回 ,但是 执行error事件。

我尝试了很多事情,但无法弄清问题所在。我在下面添加我的代码:

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>");

}

("Record

deleted")成功删除后,我需要该字符串。我可以删除内容,但是没有收到此消息。这是正确的还是我做错了什么?解决此问题的正确方法是什么?

回答:

jQuery.ajax尝试根据指定的dataType参数或Content-

Type服务器发送的标头转换响应主体。如果转换失败(例如,如果JSON / XML无效),则会触发错误回调。


您的AJAX代码包含:

dataType: "json"

在这种情况下,jQuery:

将响应评估为JSON并返回一个JavaScript对象。[…]严格解析JSON数据;任何格式错误的JSON都会被拒绝,并引发解析错误。[…]空响应也被拒绝;服务器应返回null或{}的响应。

您的服务器端代码返回带有200 OK状态的HTML代码段。jQuery期望使用有效的JSON,因此会引发抱怨的错误回调parseerror

解决方案是dataType从jQuery代码中删除参数,并使服务器端代码返回:

Content-Type: application/javascript

alert("Record Deleted");

但我宁愿建议返回JSON响应并在成功回调中显示消息:

Content-Type: application/json

{"message": "Record deleted"}

以上是 Ajax请求返回200 OK,但是会引发错误事件而不是成功 的全部内容, 来源链接: utcz.com/qa/422316.html

回到顶部