0

ajax ポストはサーバーにヒットし、正しい情報を配信しますが、機能していても、まだエラー関数にヒットしています。準備完了状態が 0 であるため、要求を行っていないことを示しています。

            var serviceURL = '/ContactForm/FirstAjax';
            $.ajax({
                type: "POST",
                url: serviceURL,
                data: JSON.stringify(formInfo),
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function () {
                            alert("Worked");
                        },

                error: function (xhRequest, ErrorText, thrownError) {
                    alert("Failed to process correctly, please try again" + "\n xhRequest: " + xhRequest + "\n" + "ErrorText: " + ErrorText + "\n" + "thrownError: " + thrownError);

                }
            });

エラーメッセージは次のとおりです。エラー メッセージ

私のコントローラーは次のようになります。

    [HttpPost]
    [ActionName("FirstAjax")]
    [OutputCache(NoStore = true, Duration = 0, VaryByParam = "*")]
    public JsonResult FirstAjax(ContactForm contactForm)
    {            
        return Json("works", JsonRequestBehavior.AllowGet);
    }
4

2 に答える 2

0

私は Fiddler を使用していて、GETnot a postを実行していることに気付きましたPOST。私はそれを修正する方法を考え出しました。フォームを送信すると、Javascript が呼び出されましたonsubmit="submitForm();"。フォームを送信すると、GETの代わりに URL で が実行されましたPOST。で固定しましonsubmit="submitForm(); return false"た。

回答のソース - jQuery: $.post が POST ではなく GET を実行する理由

于 2013-07-12T21:32:56.170 に答える
0

ajax post メソッドまたはコントローラーにエラーがあります。ajax メソッドをそのままにしておくと、コントローラーを次のように変更できます。

[HttpPost]
[ActionName("FirstAjax")]
[OutputCache(NoStore = true, Duration = 0, VaryByParam = "*")]
public JsonResult FirstAjax()
{            
    var postedData = new StreamReader(Request.InputStream);
    var jsonEncoded = postedData.ReadToEnd(); //String with json
    //Decode your json and do work. 
    return Json("works", JsonRequestBehavior.AllowGet);
}

コントローラーを変更したくない場合は、JavaScript を次のように変更する必要があります。

var serviceURL = '/ContactForm/FirstAjax';
$.ajax({
        type: "POST",
        url: serviceURL,
        data: { contactForm: JSON.stringify(formInfo) },
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function () {
                     alert("Worked");
                },
        error: function (xhRequest, ErrorText, thrownError) {
            alert("Failed to process correctly, please try again" + "\n xhRequest: " + xhRequest + "\n" + "ErrorText: " + ErrorText + "\n" + "thrownError: " + thrownError);

        }
    });

お役に立てれば。

于 2013-07-11T19:57:56.277 に答える