Ajax请求返回200 OK,但是会引发错误事件而不是成功
我已经在我的网站上实现了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,但是会引发错误事件而不是成功相关推荐
- ajax failed啥意思,AJAX请求返回200 OK,但是一个错误事件被触发而不是成功。
AJAX请求返回200 OK,但是一个错误事件被触发而不是成功. 我已经在我的网站上实现了一个Ajax请求,我正在从一个网页调用端点.它总是回来200 OK,但是jQuery执行错误事件.我试了很多东 ...
- ajax返回报错html,Jquery AJAX POST调用返回200状态确定,但错误
嗨我已经实现了一个Ajax POST请求来调用Web服务.它总是返回200行,但执行失败的事件我已经尝试了很多事情,但我没有得到我犯的错误.我在这里添加我的代码. Fiddler显示响应内容,但Aja ...
- ajax 怎么input赋值,jQuery ajax请求返回list数据动态生成input标签,并把list数据赋值到input标签...
jQuery ajax请求返回list数据动态生成input标签,并把list数据赋值到input标签 发布于 2016-11-25 16:26:40 | 111 次阅读 | 评论: 0 | 来源: ...
- IE bug:ajax请求返回304解决方案
IE bug:ajax请求返回304解决方案 参考文章: (1)IE bug:ajax请求返回304解决方案 (2)https://www.cnblogs.com/fanyx/p/6773256.ht ...
- ajax返回request,WordPress的Ajax请求返回0(Wordpress ajax request return 0)
WordPress的Ajax请求返回0(Wordpress ajax request return 0) 你好,我有一个WordPress的问题我无法获得ajax电话,我找不到原因. 我的查询一直返回 ...
- ajax绑值,AJAX请求,返回json进行页面绑值
前台代码: index.html 去往含有ajax的页面 点我! queryList.html AJAX请求,返回json进行页面绑值 var name = "测试"; //测试与 ...
- ajax返回字符串怎么处理,ajax请求返回json字符串/json对象 处理
1. 返回json字符串如何处理 $.ajax({ url:xxx, success:function(date){ }, error:function(){ } }); 通过最原始的返回: Prin ...
- AJAX请求返回HTTP 400 错误 - 请求无效 (Bad request)
在ajax请求后台数据时有时会报HTTP400错误-请求无效(Badrequest);出现这个请求无效报错说明请求没有进入到后台服务里: 原因: 1)前端提交数据的字段名称或者是字段类型和后台的实体类 ...
- SpringBoot+Echarts实现一次ajax请求返回并显示多个饼状图
场景 SpringBoot+Echarts实现请求后台数据显示饼状图: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/899211 ...
最新文章
- 自学python需要多长时间-零基础学习Python开发需要多长时间?
- pt-online-schema-change中update触发器的bug
- 关于NOMINMAX这个预处理宏
- 2019山东省赛B - Flipping Game ZOJ - 4114 题解
- 苹果电脑怎么删除软件_误格式化,删除文件怎么恢复?3款最好用的数据恢复软件推荐...
- Python 项目打包成可执行程序命令
- 使用mybatis操作AS400数据库
- diskData磁盘数据分析
- 一行代码实现数组降维去重排序
- 在Ubuntu上搭建TensorFlow
- 仿淘手游交易平台网站源码
- matlab差分法解拉普拉斯方程,拉普拉斯方程有限差分法的MATLAB实现
- Citrix虚拟桌面高拍仪上传图片调优方法
- springMVC 415 错误
- datetime取东八区时间只取到秒,返回为datetime类
- 艾默生质量流量计调试
- windows 远程桌面无法连接的问题
- 顺丰测试开发面试总结
- 读取html到超级列表框,超级列表框读取TXT文本配置内容
- vue 项目修改网页 title 和 图标
热门文章
- PostgreSQL 锁等待跟踪
- Qt使用教程之指定运行设置(三)
- AC自动机 HDOJ 2222 Keywords Search
- Linux命令:文件和目录操作
- string与stream互相转换
- c#利用反射+特性实现简单的实体映射数据库操作类(表与类的映射)
- [Lydsy1806月赛] 最长公共子序列
- Codeforces Beta Round #7 C. Line 扩展欧几里德
- Oracle 10g 报ORA-12514错误
- 三种属性操作性能比较:PropertyInfo + Expression Tree + Delegate.CreateDelegate