我正在尝试执行此AJAX帖子但由于某种原因我收到服务器500错误.我可以看到它在控制器中达到了断点.所以问题似乎在于回调.任何人?
$.ajax({ type: "POST", url: "InlineNotes/Note.ashx?id=" + noteid, data: "{}", dataType: "json", success: function(data) { alert(data[1]); }, error: function(data){ alert("fail"); } });
这是应该返回的字符串:
{status:'200', text: 'Something'}
tvanfosson.. 65
我怀疑服务器方法在通过断点后抛出异常.使用Firefox/Firebug或IE8开发人员工具查看从服务器获得的实际响应.如果有异常,您将获得YSOD html,这可以帮助您找出要查找的位置.
还有一件事 - 您的数据属性应该是{}而不是"{}",前者是空对象,而后者是作为查询参数无效的字符串.更好的是,如果您没有传递任何数据,请将其删除.
我怀疑服务器方法在通过断点后抛出异常.使用Firefox/Firebug或IE8开发人员工具查看从服务器获得的实际响应.如果有异常,您将获得YSOD html,这可以帮助您找出要查找的位置.
还有一件事 - 您的数据属性应该是{}而不是"{}",前者是空对象,而后者是作为查询参数无效的字符串.更好的是,如果您没有传递任何数据,请将其删除.
如果有人使用codeigniter框架,问题可能是由csrf保护配置启用引起的.
我自己也遇到过这个问题,即使我在我的情况下找不到它的原因,当改变POST
时GET
,问题500错误消失了!
type:'POST'
这是通过Ajax请求获取数据的Ajax请求简单代码
$.ajax({ type: "POST", url: "InlineNotes/Note.ashx", data: '{"id":"' + noteid+'"}', contentType: "application/json; charset=utf-8", dataType: "json", success: function(data) { alert(data.d); }, error: function(data){ alert("fail"); } });
您可以在此处(或此处)查找HTTP状态代码,此错误告诉您:
"服务器遇到意外情况,无法满足请求."
您需要调试您的服务器.
我遇到了类似的复合错误,需要两个解决方案.在我的例子中,技术堆栈是MVC/ASP.NET/IIS/JQuery.服务器端失败并出现500错误,这是在控制器处理请求之前发生的,这使得服务器端的调试变得困难.
以下客户端调试使我能够确定服务器错误
在$ .ajax错误回调中,向控制台显示错误详细信息
error: (error) => { console.log(JSON.stringify(error)); }
这至少使我能够查看初始服务器错误
"JSON请求太大而无法序列化"
这已在客户端web.config中解决
但是,请求仍然失败.但这一次有一个不同的错误,我现在能够在服务器端调试
"请求的实体太大"
通过将以下内容添加到服务web.config来解决此问题
…
配置值可能需要进一步调整,但至少它解决了ajax post导致的服务器错误.
我今天碰到了同样的事情.如前所述,获取Firebug for Firefox,启用控制台并预览POST响应.这帮助我找出问题是多么愚蠢.我的行动是期望int类型的值,我发布了字符串.(ASP.NET MVC2)
应该在EventVwr中记录一个事件(来自asp.net的警告),它可以为您提供有关错误可能位置的更多详细信息.