2

以下に示すように、 $.ajax() を使用して Javascript (cshtml ファイル内) から ASP.NET MVC 4 コントロール メソッドを呼び出しています。

        $.ajax({
            url: '@Url.Action("MyAction", "MyController")',
            type: 'GET',
            data: { 'id': "123"},
            contentType: "application/json; charset=utf-8",
            dataType: 'json',
            success: function (data) {
            }
        });

コントローラーのアクションメソッドは

    public JsonResult MyAction(string id)
    {
        // Do stuff
        return new JsonResult();
    }

これは正常に呼び出されていますが、GET 500 (内部サーバー エラー) を引き起こしています。

返されたデータについてはあまり気にしません。コントローラー メソッドを呼び出してモデルを更新したいだけです。

なぜ私が500を取得しているのか、またはこれを行うための別の方法があれば教えてもらえますか。

4

1 に答える 1

4

セキュリティ上の理由から、ajax リクエストで GET メソッドを使用することはできません ( JSON Hijackingを参照してください)。

次のようにするだけです。

   return Json(data, JsonRequestBehavior.AllowGet)

または、投稿する方法を変更することをお勧めします

   type: 'POST',
于 2013-07-24T10:45:10.350 に答える