JQuery Ajax发布导致500内部服务器错误。
问题的出现的原因是服务器方法在通过断点之后抛出了异常。使用Firefox/Firebug或IE8开发者工具查看从服务器获取的实际响应。如果出现异常,你将得到YSOD(黄屏)的HTML,这应该可以帮助你确定要查找的位置。
另外一件事 - 你的data属性应该是{}而不是"{}",前者是一个空对象,而后者是一个作为查询参数无效的字符串。更好的做法是,如果你不传递任何数据,就把它省略掉。
你的第一句话是误导性的(暗示500错误发生在客户端)。在我更仔细阅读答案之前,我几乎要给你点个踩。你可能需要稍微澄清一下。
fiddler2.com也非常有用,可以查看从服务器返回的实际响应。
哦,Chrome开发者工具实际上有点不够用!
实际上你可以在Chrome中调试这个问题,查看这个答案的详细信息 stackoverflow.com/a/21786593/14533
问题的解决方法是:
1. 使用Firefox/Firebug或IE8开发者工具查看从服务器获取的实际响应,以确定是否有异常抛出。
2. 如果data属性没有传递任何数据,可以将其省略掉或使用空对象{}。
3. 可以使用fiddler2.com查看从服务器返回的实际响应。
4. 如果使用Chrome,可以根据这个答案中的方法进行调试:stackoverflow.com/a/21786593/14533
JQuery的Ajax Post导致500内部服务器错误的原因是contentType的设置不正确。解决方法是移除"contentType: "application/json; charset=utf-8""这一行代码。
下面是一段简单的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"); } });
我移除了"contentType: "application/json; charset=utf-8""这一行代码,然后问题得到解决。
如果您仍然使用了这一行代码,会发生什么情况呢?_100