由于近期工作需要将人脸识别功能与选课系统结合,但是对前端知识了解的很少,只能边做边学了,因此在这边把遇到的一些坑说明一下,希望能帮助到像我一样的初学者

二、具体内容

这里采用框架为MVC,如果想在页面中不通过提交表单方式与控制器交互的话,可以用ajax去调用控制器方法并传递参数以及处理返回的json数据,方法如下

页面代码:

 $.ajax(
           url: '/User/facelog',     // 请求地址, 就是你的控制器, 如 test.com/home/index/index
           data: JSON.stringify({ stuID: stuID2 }),   // 需要传送的参数
           type: 'POST',   // 请求方式
           dataType: 'json', // 返回数据的格式, 通常为JSON
           contentType: 'application/json',             
           success: function (result) {
               window.location.href = result.NextUrl;
               msg = result.Msg;
               console.log(result); // 请求成功后的回调函数, result 为响应内容
           error: function () {
               console.log('Send Request Fail..'); // 请求失败时的回调函数

控制器代码:

 [HttpPost]
 public JsonResult facelog(string  stuID)
       User user = this.UserService.Select((User T) => (T.UserName == stuID) && T.Status == 0);
        if (user != null)
            base.Session["UserInfo"] = user;
            AjaxMsg ajaxMsg = new AjaxMsg()
                Statu = "ok",
                Msg = "登陆成功,正在跳转页面...",
                NextUrl = "/User/Main"
            return base.Json(ajaxMsg);
        return base.Json(new { Statu = "error", Msg = "账号或密码错误!"});

这里有几个坑需要特别说明一下:

  1. 在URL填写中为‘/控制器/方法名’这里一定要注意,控制器指的并不是控制器全名,而是去掉controller的那个,这里我的控制器为UserController,因此这里填写User,话说我踩到这个坑,害我调试了好久。。。

  2. 就是传递参数格式了,data这里传递的参数是动态的,因此就定义了全局变量存储,这里被坑的地方是stuID2 的值是从另外一个ajax请求中获得,但另外一个数据还未返回时这个ajax已经执行了,害我一直以为是data填的格式不对才导致数据无法传递到控制器中

  3. 接第二点,如果想要在一个ajax执行完成后再执行另外一个,这里用 async: false即可,默认情况是为true的

  4. JSON.stringify 要与 contentType: 'application/json' 一起用才能很好的将数据传递过去

  5. 关于返回数据,一般为json的需要解析一下

一、背景 由于近期工作需要将人脸识别功能与选课系统结合,但是对前端知识了解的很少,只能边做边学了,因此在这边把遇到的一些坑说明一下,希望能帮助到像我一样的初学者二、具体内容 这里采用框架为MVC,如果想在页面中不通过提交表单方式与控制器交互的话,可以用ajax去调用控制器方法并传递参数以及处理返回的json数据,方法如下页面代码: $.ajax( { ...
在使用的过程中发现,如果要在pullEvent()方法获取参数比较麻烦,查看源码发现nl.justobjects.pushlet.servlet.Pushlet中已经将request参数传进了Session(注意是nl.justobjects.pushlet.core.Session)。但是在session构造的时候没有用到request。看到这里,就大概知道改怎么改了。代码如下: 1. nl.justobjects.pushlet.core.Session,添加了event域和getEvent()方法,修改了public static Session create(String anId, Event anEvent)方法 public static Session create(String anId, Event anEvent) throws PushletException { Session session; try { session = (Session) Config.getClass(SESSION_CLASS, "nl.justobjects.pushlet.core.Session").newInstance(); } catch (Throwable t) { throw new PushletException("Cannot instantiate Session from config", t); // Init session session.id = anId; session.controller = Controller.create(session); session.subscriber = Subscriber.create(session); session.event = anEvent; return session; } 2. nl.justobjects.pushlet.core.SessionManager,修改了createSession()方法 * Create new Session (but add later). public Session createSession(Event anEvent) throws PushletException { // Trivial return Session.create(createSessionId(), anEvent); } 3. ajax-pushlet-client.js,PL添加了parameters属性,修改了_doRequest函数,在函数的最后加了如下一段: if(PL.parameters.length > 0) { for (var i = 0; i < PL.parameters.length; i++) { var para = PL.parameters[i]; url += "&" + para.name + "=" + para.value; } 好了,源代码修改完毕,下面是一个如何传递参数的例子 在页面上js代码: // pushlet服务器推送,更新实时监控模块 var initPushlet = function() { PL.parameters.push({"name":"user-id", "value":"001"); PL._init(); PL.joinListen('/source/event'); 在HelloWorldPlushlet的pullEvent()方法调用: Session[] sessions = SessionManager.getInstance().getSessions(); String userId = sessions[0].getEvent().getField("user-id");
今天分享的案例,也是困扰我一下午,但一大早起来就找到了解决方案。 在后台管理中,比如删除某一个指定的用户时,会弹出一个对话框,点击确认按钮后,才删除当前用户. 后台已写好了删除操作的Action动作,需要在删除点击确认时调用即可。 我这边是用的模板, Demo: <div class="tip"> <div class="tiptop"><span>提示信息</span><a></a></div> <div clas
这里前端html页面使用ajaxcontroller传递的主要是form表单的内容,且前端使用了layui框架。后端controller接收值可以有两种方法 1.前端cshtml代码(layui模板自带的登录界面,使用时记得添加相关的引用和依赖,这里已经封装在BundleConfig.cs中) ViewBag.Title = "Login"; <!DOCTYPE ...
AJAX向后端发送一个请求并携带有参数,后端处理请求并把数据转化为JSON字符串返回给AJAXAJAX获取值显示在页面 url:请求地址 type:请求方式,GET、POST data:要携带的数据,多个数据用逗号隔开 success: function(map) 成功之后执行的回调函数(全局),map为后端返回的数据 $("#a").val(map.value1) #标签名.val 给这个标签值 AJAX: function test(value1,value
&lt;dependency&gt; &lt;groupId&gt;org.apache.httpcomponents&lt;/groupId&gt; &lt;artifactId&gt;httpclient&lt;/artifactId&gt; &lt;version&gt;4.5.3&lt;/ve...