使用ajax get调用时出现500错误

时间:2017-01-10 15:15:57

标签: c# jquery ajax

尝试使用Ajax .get调用时,我收到500内部服务器错误。我仔细检查了方法名称在get调用中是否与在方法上方的Route中相同。不知道为什么我会收到500错误以及如何解决它。

这是我的jQuery:

$('button').click(function() {
    $('#New_Note').submit(function(event) {
        event.preventDefault();
        var $form = $(this);
        url = $form.attr("action");

        term = $form.find("input[name='Note']").val();
        console.log(url);

        var posting = $.post( url, { Note: term } );

        var get = $.get("getLastEntry");//This line causes the 500 error                 
    });

这是我的.cs文件中的方法

[HttpGet]
[Route("getLastEntry")]
public IActionResult GetLastEntry()
{
        ViewBag.Notes = userFactory.GetLast();
        return View();
}

以下是GetLast方法

public IEnumerable<Home> GetLast()
{
            using (IDbConnection dbConnection = Connection)
            {
                dbConnection.Open();
                return dbConnection.Query<Home>("SELECT * FROM notes ORDER BY Id LIMIT 1");
            }
}

3 个答案:

答案 0 :(得分:1)

你能试试吗?

  $('button').click(function(){
                   $('#New_Note').submit(function(event){
                       event.preventDefault();
                      var $form = $( this );
                      url = $form.attr( "action" );

                      term = $form.find( "input[name='Note']" ).val();
                      console.log(url);
                      var posting = $.post( url, { Note: term } );

                      var get = $.get("@Url.RouteUrl("getLastEntry")");//Change here                 
                    });

});

答案 1 :(得分:1)

500错误说你的路由没问题。您必须阅读服务器响应的错误消息。您可以在浏览器中找到它(通常由F12热键调用的开发人员工具)。此外,您必须在Web.config中使用此项<customErrors mode="Off" />

错误可能出现在任何内容中:连接字符串,奇怪的语法using (IDbConnection dbConnection = Connection)或.cshtml文件。

答案 2 :(得分:0)

您不应该使用GET进行ajax调用。我已经看到了一些错误的请求被缓存的情况,并且尽管代码很好,仍然会继续提供服务。将协议切换为POST将为您验证或无效我的答案。