我已经在我的网站上实现了Ajax请求,并且正在从网页调用端点。 它总是返回200 OK ,但是jQuery执行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);
}

JqueryOpeartion.aspx C#代码

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

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


#1楼

令我感到困惑的另一件事是使用localhost而不是127.0.0.1,反之亦然。 显然,JavaScript无法处理彼此之间的请求。


#2楼

如果您实现的Web服务方法无效,则只需从标头中删除dataType: 'json'

在这种情况下,Ajax调用不会期望具有JSON返回数据类型。


#3楼

使用以下代码确保响应为JSON格式(PHP版本)...

header('Content-Type: application/json');
echo json_encode($return_vars);
exit;

#4楼

我遇到过同样的问题。 我的问题是我的控制器返回的是状态码而不是JSON。 确保您的控制器返回类似以下内容的内容:

public JsonResult ActionName(){// Your codereturn Json(new { });
}

#5楼

这只是出于记录目的,因为我在寻找类似于OP的问题的解决方案时碰到了这篇文章。

就我而言,由于Chrome中的同源策略 ,我的jQuery Ajax请求被阻止了。 当我修改服务器(Node.js)来解决所有问题时:

response.writeHead(200,{"Content-Type": "application/json","Access-Control-Allow-Origin": "http://localhost:8080"});

从字面上看,我花了一个小时将我的头撞在墙上。 我很蠢...


#6楼

我有同样的问题。 这是因为我的JSON响应包含一些特殊字符,并且服务器文件未使用UTF-8编码,因此Ajax调用认为这不是有效的JSON响应。


#7楼

我已经通过更新的jQuery库面对了这个问题。 如果服务方法未返回任何内容,则意味着返回类型为void

然后在您的Ajax通话中,请提及dataType='text'

它将解决问题。


#8楼

您只需要在AJAX调用中删除dataType:“ json”

$.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
});

#9楼

您的脚本要求返回JSON数据类型。

尝试这个:

private string test() {JavaScriptSerializer js = new JavaScriptSerializer();return js.Serialize("hello world");
}

#10楼

看到这个 。 它也有类似的问题。 我试过的工作。

不要删除dataType: 'JSON',

注意:如果仅使用php,则仅在PHP文件中回显JSON Formate。echo ajax code return 200


#11楼

我有类似的问题,但是当我尝试删除数据类型:'json'时,我仍然遇到问题。 我的错误正在执行而不是成功

function cmd(){var data = JSON.stringify(display1());$.ajax({type: 'POST',url: '/cmd',contentType:'application/json; charset=utf-8',//dataType:"json",data: data,success: function(res){console.log('Success in running run_id ajax')//$.ajax({//   type: "GET",//   url: "/runid",//   contentType:"application/json; charset=utf-8",//   dataType:"json",//   data: data,//  success:function display_runid(){}// });},error: function(req, err){ console.log('my message: ' + err); }});
}

#12楼

如果您始终从服务器返回JSON(无空响应),则dataType: 'json'应该可以工作,并且不需要contentType 。 但是请确保JSON输出...

  • 有效( JSONLint )
  • 已序列化 ( JSONMinify )

jQuery AJAX将在有效但未序列化的JSON上引发“ parseerror”!


#13楼

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


您的AJAX代码包含:

dataType: "json"

在这种情况下,jQuery:

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

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

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

Content-Type: application/javascriptalert("Record Deleted");

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

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

#14楼

我认为您的aspx页面未返回JSON对象。 您的页面应执行以下操作(page_load)

var jSon = new JavaScriptSerializer();
var OutPut = jSon.Serialize(<your object>);Response.Write(OutPut);

另外,尝试更改您的AjaxFailed:

function AjaxFailed (XMLHttpRequest, textStatus) {}

textStatus应该为您提供错误类型。


#15楼

尝试跟随

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

要么

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

在JSON对象中使用双引号而不是单引号。 我认为这将解决问题。


#16楼

我通过使用多个以空格分隔的dataType ( 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
});

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

  1. ajax failed啥意思,AJAX请求返回200 OK,但是一个错误事件被触发而不是成功。

    AJAX请求返回200 OK,但是一个错误事件被触发而不是成功. 我已经在我的网站上实现了一个Ajax请求,我正在从一个网页调用端点.它总是回来200 OK,但是jQuery执行错误事件.我试了很多东 ...

  2. ajax返回报错html,Jquery AJAX POST调用返回200状态确定,但错误

    嗨我已经实现了一个Ajax POST请求来调用Web服务.它总是返回200行,但执行失败的事件我已经尝试了很多事情,但我没有得到我犯的错误.我在这里添加我的代码. Fiddler显示响应内容,但Aja ...

  3. ajax 怎么input赋值,jQuery ajax请求返回list数据动态生成input标签,并把list数据赋值到input标签...

    jQuery ajax请求返回list数据动态生成input标签,并把list数据赋值到input标签 发布于 2016-11-25 16:26:40 | 111 次阅读 | 评论: 0 | 来源: ...

  4. IE bug:ajax请求返回304解决方案

    IE bug:ajax请求返回304解决方案 参考文章: (1)IE bug:ajax请求返回304解决方案 (2)https://www.cnblogs.com/fanyx/p/6773256.ht ...

  5. ajax返回request,WordPress的Ajax请求返回0(Wordpress ajax request return 0)

    WordPress的Ajax请求返回0(Wordpress ajax request return 0) 你好,我有一个WordPress的问题我无法获得ajax电话,我找不到原因. 我的查询一直返回 ...

  6. ajax绑值,AJAX请求,返回json进行页面绑值

    前台代码: index.html 去往含有ajax的页面 点我! queryList.html AJAX请求,返回json进行页面绑值 var name = "测试"; //测试与 ...

  7. ajax返回字符串怎么处理,ajax请求返回json字符串/json对象 处理

    1. 返回json字符串如何处理 $.ajax({ url:xxx, success:function(date){ }, error:function(){ } }); 通过最原始的返回: Prin ...

  8. AJAX请求返回HTTP 400 错误 - 请求无效 (Bad request)

    在ajax请求后台数据时有时会报HTTP400错误-请求无效(Badrequest);出现这个请求无效报错说明请求没有进入到后台服务里: 原因: 1)前端提交数据的字段名称或者是字段类型和后台的实体类 ...

  9. SpringBoot+Echarts实现一次ajax请求返回并显示多个饼状图

    场景 SpringBoot+Echarts实现请求后台数据显示饼状图: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/899211 ...

最新文章

  1. 自学python需要多长时间-零基础学习Python开发需要多长时间?
  2. pt-online-schema-change中update触发器的bug
  3. 关于NOMINMAX这个预处理宏
  4. 2019山东省赛B - Flipping Game ZOJ - 4114 题解
  5. 苹果电脑怎么删除软件_误格式化,删除文件怎么恢复?3款最好用的数据恢复软件推荐...
  6. Python 项目打包成可执行程序命令
  7. 使用mybatis操作AS400数据库
  8. diskData磁盘数据分析
  9. 一行代码实现数组降维去重排序
  10. 在Ubuntu上搭建TensorFlow
  11. 仿淘手游交易平台网站源码
  12. matlab差分法解拉普拉斯方程,拉普拉斯方程有限差分法的MATLAB实现
  13. Citrix虚拟桌面高拍仪上传图片调优方法
  14. springMVC 415 错误
  15. datetime取东八区时间只取到秒,返回为datetime类
  16. 艾默生质量流量计调试
  17. windows 远程桌面无法连接的问题
  18. 顺丰测试开发面试总结
  19. 读取html到超级列表框,超级列表框读取TXT文本配置内容
  20. vue 项目修改网页 title 和 图标

热门文章

  1. PostgreSQL 锁等待跟踪
  2. Qt使用教程之指定运行设置(三)
  3. AC自动机 HDOJ 2222 Keywords Search
  4. Linux命令:文件和目录操作
  5. string与stream互相转换
  6. c#利用反射+特性实现简单的实体映射数据库操作类(表与类的映射)
  7. [Lydsy1806月赛] 最长公共子序列
  8. Codeforces Beta Round #7 C. Line 扩展欧几里德
  9. Oracle 10g 报ORA-12514错误
  10. 三种属性操作性能比较:PropertyInfo + Expression Tree + Delegate.CreateDelegate