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

我怀疑这是作为链接上的处理程序调用的,并且您将链接 href 设置为与 AJAX 帖子相同的 url。如果是这种情况,那么我认为您有一个 javascript 错误导致调用链接操作(GET)而不是 AJAX 后调用。检查 Firefox/Firebug 并查看控制台中是否有错误。

此外,在 post 方法中,您的 URL 末尾不需要斜杠。没有它,查询参数将适当地附加到 URL。

于 2010-06-28T13:41:19.313 回答
0
return Json(new {...},JsonRequestBehavior.AllowGet);

这个怎么样?

于 2010-06-28T15:27:12.277 回答