2017-01-10 7 views
0

Ajax .get呼び出しを使用しようとすると、500 Internal Server Errorが発生します。私はメソッド名がメソッドの上のRouteにあるのと同じgetコールでメソッド名が同じであることを確認しました。なぜ私が500エラーを取得しているのか、それを修正する方法がわからない。ここでajax getコールを使用すると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

なぜデバッグしないのですか? – Liam

+0

@Liamどのようにサーバーエラーをデバッグするのですか? – Aaron

+0

ローカルに再作成しますか?この情報で再作成することはできません。だからこの問題を解決するために最高の配置 – Liam

答えて

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     
        }); 

}); 
+0

予想される '、'エラーが発生しました。私は中央の引用符をダミーに変更し、文字リテラルであまりにも多くの文字を持っていた – Aaron

+0

引用符を変更する必要はありません、すべてのカッコが正しく閉じられていることを確認してください –

1

500エラーはルーティングが正常であることを示します。サーバーが応答するエラーメッセージを読み取る必要があります。ブラウザで見つけることができます(通常F12ホットキーで呼ばれる開発者ツール)。また、Web.configに<customErrors mode="Off" />という項目が必要です。

エラーは接続文字列、奇妙な構文using (IDbConnection dbConnection = Connection)または.cshtmlファイルにある可能性があります。

+0

最初に$ .get( "routeName")を試しました。機械。 "https:// localhost:9457/Web/MyAction/routeName"を生成し、 "routeName"をidパラメータとして扱いました。あなたのルートがどのように定義されているかによって異なります。 –

+0

あなたは正しいですが、とにかく正しい答えを出すためにエラーメッセージを知る必要があります – Anton

0

ajax呼び出しを行うには、GETを使用しないでください。私は悪い要求がキャッシュされ、コードがうまくいても引き続き提供される状況を見てきました。プロトコルをPOSTに切り替えると、自分の答えを検証するか無効にします。

+0

投稿と同じエラーが表示される – Aaron

関連する問題