利用Ajax调用controller方法并传递参数
一、背景
由于近期工作需要将人脸识别功能与选课系统结合,但是对前端知识了解的很少,只能边做边学了,因此在这边把遇到的一些坑说明一下,希望能帮助到像我一样的初学者
二、具体内容
这里采用框架为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 == );
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 = "账号或密码错误!"});
}
这里有几个坑需要特别说明一下:
在URL填写中为‘/控制器/方法名’这里一定要注意,控制器指的并不是控制器全名,而是去掉controller的那个,这里我的控制器为UserController,因此这里填写User,话说我踩到这个坑,害我调试了好久。。。
就是传递参数格式了,data这里传递的参数是动态的,因此就定义了全局变量存储,这里被坑的地方是stuID2 的值是从另外一个ajax请求中获得,但另外一个数据还未返回时这个ajax已经执行了,害我一直以为是data填的格式不对才导致数据无法传递到控制器中
接第二点,如果想要在一个ajax执行完成后再执行另外一个,这里用 async: false即可,默认情况是为true的
JSON.stringify 要与 contentType: 'application/json' 一起用才能很好的将数据传递过去
关于返回数据,一般为json的需要解析一下
利用Ajax调用controller方法并传递参数的更多相关文章
- Groovy小结:java调用Groovy方法并传递参数
Groovy小结:java调用Groovy方法并传递参数 @(JAVA总结) 1. 场景描述 在网上查了资料发现,java有三种方式调用groovy脚本.但是真正在实际的服务器环境中,嵌入groovy ...
- odoo14 button 事件调用python方法如何传递参数
1 <field name="user_ids" 2 mode="kanban" 3 nolabel="1" 4 options=&q ...
- asp.net如何在前台利用jquery Ajax调用后台方法
一 :最近因为帮同事开发项目使用到了asp.net,而我又想实现Ajax异步请求....从网上查询了一下资料之后,原来在asp.net中利用Ajax调用后台方法同样很简单,为了便于自己以后查看,特将此 ...
- 工作随笔——Java调用Groovy类的方法、传递参数和获取返回值
接触Groovy也快一年了,一直在尝试怎么将Groovy引用到日常工作中来.最近在做一个功能的时候,花了点时间重新看了下Java怎么调用Groovy的方法.传递参数和获取返回值. 示例Groovy代码 ...
- Jquery利用ajax调用asp.net webservice的各种数据类型(总结篇)
原文:Jquery利用ajax调用asp.net webservice的各种数据类型(总结篇) 老话说的好:好记心不如烂笔头! 本着这原则,我把最近工作中遇到的jquery利用ajax调用web服务的 ...
- asp.net core 的 razor pages 如何使用ajax调用后台方法
Razor 是一种允许您向网页中嵌入基于服务器的代码(Visual Basic 和 C#)的标记语法. 当网页被写入浏览器时,基于服务器的代码能够创建动态内容. 在网页加载时,服务器在向浏览器返回页面 ...
- java 中使用ajax调用后台方法注意事项
java 中使用ajax调用后台方法注意事项,后台方法一定要加@ResponseBody jQuery.validator.addMethod("checkRuleName",fu ...
- 使用 ResponseBodyAdvice 拦截Controller方法默认返回参数,统一处理返回值/响应体
使用 @ControllerAdvice & ResponseBodyAdvice 拦截Controller方法默认返回参数,统一处理返回值/响应体 1.Controller代码 以下是Con ...
- bat调用exe文件并且传递参数
bat调用exe文件并且传递参数 bat调用exe,并且传递日期参数,代码: @echo off cd "E:\SublimeWorks\exe" start xyzj_shrjj ...
随机推荐
- Oracle配置说明
当Oracle安装完成后,为后续能够顺利得导出空表,特做一下配置(重点关注2.1) 1.1.查询空表select table_name from user_tables where NUM_ROWS= ...
- F - Modular Exponentiation
Problem description The following problem is well-known: given integers n and m, calculate 2n mod m, ...
- Laravel5.1学习笔记9 系统架构1 请求生命周期 (待修)
Request Lifecycle Introduction Lifecycle Overview Focus On Service Providers Introduction When using ...
- Javascrpt核心概念(2)--操作符
学习操作符这个章节最好回忆一下C里的惯例,因为ECMAScript的标准很多继承自C的语法 一元操作符 只能操作一个值得操作符 递增和递减操作符 var age = 29; ++age; //30 v ...
- 【Oracle】详解10053事件
借助Oracle的10053事件event,我们可以监控到CBO对SQL进行成本计算和路径选择的过程和方法. 10053事件有两个级别: Level 2:2级是1级的一个子集,它包含以下内容: Col ...
- 图像局部显著性—点特征(GLOH)
基于古老的Marr视觉理论,视觉识别和场景重建的基础即第一阶段为局部显著性探测.探测到的主要特征为直觉上可刺激底层视觉的局部显著性--特征点.特征线.特征块. 相关介绍:局部特征显著性-点特征(SIF ...
- 三维重建:SLAM算法的考题总结
参考英文维基:https://en.wikipedia.org/wiki/Slam 参考文档:视觉slam研究分析的一点认识 1. 请简单描述您对机器人的SLAM的概念理解? 答: 机器人需要在自身位 ...
- css3基础篇三
CSS3 文本阴影 在 CSS3 中,text-shadow 可向文本应用阴影. 您能够规定水平阴影.垂直阴影.模糊距离,以及阴影的颜色: 实例 向标题添加阴影: h1 { text-shadow: ...
- REST ful
前后端分离.面向资源.无状态: 请求包含全部信息. 什么是 REST? 下面六条准则定义了一个 REST 系统的特征: 客户-服务器(Client-Server),提供服务的服务器和使用服务的客户需要 ...
- python tips:小整数对象池与字符串intern
本文为is同一性运算符的详细解释.is用于判断两个对象是否为同一个对象,具体来说是两个对象在内存中的位置是否相同. python为了提高效率,节省内存,在实现上大量使用了缓冲池技术和字符串intern ...