首页 新闻 会员 周边

C# 中MVC JQuery+ajax提交数据返回结果无法进入success ,直接输出了,是怎么回事?

0
悬赏园豆:10 [已解决问题] 解决于 2019-04-04 14:19

控制器代码:

    public ActionResult UserLogin()
    {
        
            Login Lo = new Login();
            string UserName = Request["UserName"];
            string UserPassword = Request["UserPassword"];
            if (UserName !="")
            {
                JavaScriptSerializer jss = new JavaScriptSerializer();
                return Json(jss.Serialize(new { Name =UserName .Trim(), Message = "成功!" }), JsonRequestBehavior.AllowGet);
            }
            else
            {
                JavaScriptSerializer jss = new JavaScriptSerializer();
                return Json(jss.Serialize(new { Name = "", Message = "失败!" }), JsonRequestBehavior.AllowGet);
            }



    }

Ajax 请求代码:

$.ajax({
type: 'POST',
url: "/Other/UserLogin",
dataType: 'json',
data: { "UserName": UserName, "UserPassword": UserPassword },
success: function (data) {
debugger;
<span>alert</span>(1);
},
error: function (data) {
debugger;
<span>alert</span>(2);
}
})

执行结果:

过河小斌的主页 过河小斌 | 初学一级 | 园豆:38
提问于:2018-11-05 10:38
< >
分享
最佳答案
0

加上 JsonRequestBehavior.AllowGet

return Json(new { Name = "", Message = "失败!" }, JsonRequestBehavior.AllowGet);
收获园豆:5
dudu | 高人七级 |园豆:31003 | 2018-11-05 10:39

报错了:

Server Error in '/' Application.
此要求已被封鎖,因為用於 GET 要求時無法向第三方網站揭露敏感資訊。若要允許 GET 要求,請將 JsonRequestBehavior 設定為 AllowGet。
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.InvalidOperationException: 此要求已被封鎖,因為用於 GET 要求時無法向第三方網站揭露敏感資訊。若要允許 GET 要求,請將 JsonRequestBehavior 設定為 AllowGet。

Source Error:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

过河小斌 | 园豆:38 (初学一级) | 2018-11-05 10:41

改成
return Json(new { Name = "", Message = "失败!" });也不行,

过河小斌 | 园豆:38 (初学一级) | 2018-11-05 10:51
其他回答(2)
0

肯定是 if (UserName !="")条件不对啊,调试一下不就好咯

收获园豆:2
MrNice | 园豆:3450 (老鸟四级) | 2018-11-05 10:53

不行啊,
后台return Json执行到了,

前台JS Alert ();内容就是不输出,

前后台都没有异常和错误。

支持(0) 反对(0) 过河小斌 | 园豆:38 (初学一级) | 2018-11-05 11:11

@过河小斌: 你调试有没有放掉断点?

支持(0) 反对(0) MrNice | 园豆:3450 (老鸟四级) | 2018-11-05 11:15

@MrNice:
运行完了的,只是为了好看运行的结果,就截了运行中的图。

支持(0) 反对(0) 过河小斌 | 园豆:38 (初学一级) | 2018-11-05 11:36

@过河小斌: 改alert为console.log()看看控制台

支持(0) 反对(0) MrNice | 园豆:3450 (老鸟四级) | 2018-11-05 11:55
1

后台方法里面ActionResult 改为JsonResult试试

收获园豆:3
顾星河 | 园豆:7173 (大侠五级) | 2018-11-05 12:00

可以了,

return Json(new { Name = "", Message = "失败!" }, JsonRequestBehavior.AllowGet);

return Json(new { Name = "", Message = "失败!" });
都可以。
===========================出现问题的原因=============================
问题出现在Firefox 浏览器的兼容性。
在调手机版(响应模式下)时Firefox 浏览器不支持输出 Alert();对话框消息,控制台也不会有报错提示。
非响应模式下可以正常弹出Alert()对话框。
导致手机版(响应模式下)我误判断成没有执行返回结果(success和error的alert都没显示出来)。

执行结果:

支持(0) 反对(0) 过河小斌 | 园豆:38 (初学一级) | 2018-11-05 14:00
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册