0

Asp.net MVC でアプリケーションを開発しています。

jquery を使用してフォームを送信します。

var Data = $("#frmForgotPassword").serialize();
$.post("<%= Url.Action("ForgotPassword","Account") %>/", Data, function(retdata, textStatus) {
    if (textStatus == "success") {
        if (retdata.status == false) {
            $("#error").html('<p class="error">Error: ' + retdata.msg + '</p>');
        }
        else {
            $("#error").html('<div class="clean-ok">Success: ' + retdata.msg + '</div>');
        }
    }
    else
        alert("error: " + textStatus);
}, "json");

しかし、ここに示すように、ファイルを開くと応答が返されます。

私のコントローラーは次のようにjsonを返します:

return Json(new { status = false, msg = "User name or email is not registered with us!" });

また

return Json(new { status = true, msg = "Your username and password has been sent to your email address!" });

では、どこが間違っているのでしょうか。応答をファイルとして開かないようにする方法は? IEでも同じエラーが発生します。

編集:

リクエストヘッダー:

Host    localhost:16293
User-Agent  Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.6) Gecko/20100625 Firefox/3.6.6
Accept  application/json, text/javascript, */*
Accept-Language en-us,en;q=0.5
Accept-Encoding gzip,deflate
Accept-Charset  ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive  115
Connection  keep-alive
Content-Type    application/x-www-form-urlencoded; charset=UTF-8
X-Requested-With    XMLHttpRequest
Referer http://localhost:16293/Account.aspx/LogOn?ReturnUrl=%2fdefault.aspx
Content-Length  15
4

2 に答える 2

0
return Json(new {...},JsonRequestBehavior.AllowGet);

これはどう?

于 2010-06-28T15:27:12.277 に答える
0

これはリンクのハンドラーとして呼び出されており、リンクの href が AJAX 投稿と同じ URL に設定されていると思われます。その場合は、AJAX post 呼び出しの代わりにリンク アクション (GET) が呼び出される原因となっている JavaScript エラーがあると思います。Firefox/Firebug で確認し、コンソールにエラーがあるかどうかを確認します。

また、post メソッドの URL の末尾にスラッシュは必要ありません。クエリ パラメータは、URL なしで適切に URL に追加されます。

于 2010-06-28T13:41:19.313 に答える