为了账号安全,请及时绑定邮箱和手机立即绑定

AJAX请求返回200 OK,但是一个错误事件被触发而不是成功。

AJAX请求返回200 OK,但是一个错误事件被触发而不是成功。

森林海 2019-06-25 13:20:09
AJAX请求返回200 OK,但是一个错误事件被触发而不是成功。我已经在我的网站上实现了一个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.aspxprotected void Page_Load(object sender, EventArgs e) {     test();}private void test() {     Response.Write("<script language='javascript'>alert('Record Deleted');</script>");}我需要("Record deleted")成功删除后的字符串。我可以删除内容,但我没有收到这条消息。这是对的还是我做错了什么?解决这个问题的正确方法是什么?
查看完整描述

3 回答

?
喵喵时光机

TA贡献1846条经验 获得超7个赞

jQuery.ajax根据指定的dataType参数或Content-Type服务器发送的标头。如果转换失败(例如,如果JSON/XML无效),则会触发错误回调。


Ajax代码包含:

dataType: "json"

在本例中,jQuery:

将响应计算为JSON并返回一个JavaScript对象。[…]JSON数据是以严格的方式解析的;任何格式错误的JSON都会被拒绝,并抛出一个解析错误。[…]空响应也被拒绝;服务器应该返回NULL或{}响应。

服务器端代码返回HTML片段200 OK现状。jQuery期待有效的JSON,因此引发错误回调,抱怨parseerror.

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

Content-Type: application/javascript

alert("Record Deleted");

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

Content-Type: application/json{"message": "Record deleted"}


查看完整回答
反对 回复 2019-06-25
?
MMTTMM

TA贡献1869条经验 获得超4个赞

我很幸运地使用了多重空间分隔dataTypeS(jQuery 1.5+)。如:

$.ajax({
    type: 'POST',
    url: 'Jqueryoperation.aspx?Operation=DeleteRow',
    contentType: 'application/json; charset=utf-8',
    data: json,
    dataType: 'text json',
    cache: false,
    success: AjaxSucceeded,
    error: AjaxFailed});


查看完整回答
反对 回复 2019-06-25
?
守候你守候我

TA贡献1802条经验 获得超10个赞

您只需删除数据类型:“json”在Ajax调用中

$.ajax({
    type: 'POST',
    url: 'Jqueryoperation.aspx?Operation=DeleteRow',
    contentType: 'application/json; charset=utf-8',
    data: json,
    dataType: 'json', //**** REMOVE THIS LINE ****//
    cache: false,
    success: AjaxSucceeded,
    error: AjaxFailed});


查看完整回答
反对 回复 2019-06-25
  • 3 回答
  • 0 关注
  • 1004 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信