JQuery Ajax发布导致500内部服务器错误。

14 浏览
0 Comments

JQuery Ajax发布导致500内部服务器错误。

我正在尝试执行这个AJAX请求,但出现了服务器500错误的问题。我可以看到它在控制器中触发断点。所以问题似乎出在回调函数上。有人知道原因吗?

以下是应该返回的字符串:

{status:'200', text: 'Something'}

0
0 Comments

问题的出现的原因是服务器方法在通过断点之后抛出了异常。使用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

0
0 Comments

问题出现的原因是使用了CodeIgniter框架的csrf保护配置。解决方法是将以下代码添加到数据中:<?= $this->security->get_csrf_token_name() ?> : '<?= $this->security->get_csrf_hash() ?>'。感谢您的答案给了我提示 :)也许对其他人来说避免这个问题是有意思的。谢谢,我在Bonfire上陷入了困境,还不够了解CodeIgniter来弄清楚这一点。

0
0 Comments

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

0