ajax + php + Controller 控制所有后台函数调用
转载请注明出处:http://www.cnblogs.com/ghypnus/p/4645873.html
好久没有来这边发布代码了
总共分成3大部分来完成php的ajax调用逻辑,以下是大致的结构
第一部分:ajax请求:主要是action这个参数,LoginController是php的类名,login是LoginController这个类中的函数名
$('#submit').on('click', function (e) {
e.stopPropagation();
$.ajax({
url: "../../controllers/Controller.php",
data: {
action: "LoginController/login",
username: username,
password: password
},
dataType: "text",
type: 'POST',
timeout: 10000,
error: function () {
alert("服务器超时");
},
success: function (data) {
alert(data);
}
});
});
第二部分:Controller.php,这个文件是调用其他具体的功能类的控制器,起到枢纽作用,主要是通过反射来实现
<?php if (!empty($_REQUEST['action'])) {
try {
$action = explode('/', $_REQUEST['action']);
$class_name = $action[0];
$method_name = $action[1];
require $class_name . '.php';
$class = new ReflectionClass($class_name);
if (class_exists($class_name)) {
if ($class->hasMethod($method_name)) {
$func = $class->getmethod($method_name);
$instance = $class->newInstance();
$func->invokeArgs($instance, array($_REQUEST));
$result = $instance->getResult();
echo $result;
}
}
} catch (Exception $exc) {
echo $exc->getTraceAsString();
}
}
?>
第三部分:LoginController.php,这个文件是具体的功能类
<?php class LoginController {
private $result;
function LoginController() {
//初始化数据库连接等参数 } function login($args) {
//具体的登录逻辑
} function getResult() {
return $this->result;
} } ?>
ajax + php + Controller 控制所有后台函数调用的更多相关文章
- 使用Ajax在javascript中调用后台C#函数
使用Ajax在javascript中调用后台C#函数 最近一段时间在紧跟一个网站的项目,数据库中用户表的UserName要求是唯一的,所以当用户选定一个用户名进行注册时要首先检查该用户名是否已被占用, ...
- springMvc基本注解:@Component、@Repository(持久层) 、@Service(业务逻辑) 、@Controller(控制层)
1.@Controller(控制层) :就是action层 2.@Service(业务逻辑) :业务逻辑层,负责处理各种控制层的操作 3.@Repository(持久层) :称为“持久化”层,负责对数 ...
- 序列化json对象,通过ajax传入asp.net mvc后台
序列化json对象,通过ajax传入asp.net mvc后台 序列化json对象,通过ajax传入asp.net mvc后台 今天遇到一个问题,准备把组织好的json对象通过jquery.aja ...
- Springboot 使用 JSR 303 对 Controller 控制层校验及 Service 服务层 AOP 校验,使用消息资源文件对消息国际化
导包和配置 导入 JSR 303 的包.hibernate valid 的包 <dependency> <groupId>org.hibernate.validator< ...
- SpringMVC之Ajax与Controller交互
前面学习了拦截器,通过拦截器我们可以拦截请求,做进一步处理之后再往下进行,这里我们使用Ajax的时候会有一个问题就是会把js.css这些静态资源文件也进行了拦截,这样在jsp中就无法引入的静态资源文件 ...
- vue-quasar-admin 一个包含通用权限控制的后台管理系统
vue-quasar-admin Quasar-Framework 是一款基于vue.js开发的开源的前端框架, 它能帮助web开发者快速创建以下网站:响应式网站,渐进式应用,手机应用(通过Cor ...
- SchuledExecutorService 使用controller控制线程关闭
1:SchuledExecutorService 使用controller控制线程关闭 package com.li.controller; import org.springframework.s ...
- 一、表单和ajax中的post请求&&后台获取数据方法
一.表单和ajax中的post请求&&后台获取数据方法 最近要做后台数据接收,因为前台传来的数据太过于混乱,所以总结了一下前台数据post请求方法,顺便写了下相对应的后台接收方法. 前 ...
- ajax请求controller出现中文乱码
ajax请求controller出现中文乱码 解决方法:在 @RequestMapping 中加上 produces = {"application/json;charset=UTF-8& ...
随机推荐
- jquery select三级联动
需求:对地区进行选择,选择相应的省,就会出现相应范围的市,然后出现相应的范围的县区:如果县不存在,就不现实,自我要求是自己写个简单的插件,方便以后调用: 逻辑:1.通过div的类名来获取,其下的sel ...
- JS继承六大模式
1.原型链 function SuperType(){this.property = true;} SuperType.prototype.getSuperValue = function(){ret ...
- 10步教你来优化WordPress速度 为服务器和访客减压
1.Cookie的静态化制作 约有80%至90%的时间,访客要花费大量的时间等你的WordPress加载静态内容.这意味着,有大部分的时间,用户浏览您的网站,他们正在等待加载,如:图像,CSS,JS脚 ...
- XJOI网上同步训练DAY1 T2
思路:似曾相识?...见http://www.cnblogs.com/qzqzgfy/p/5266874.html 一看时限还是4s!,于是就开开心心地打了70%的分,就是用容斥原理,就可以n^3解决 ...
- Win8/Win8.1都有哪些版本?我该选择哪个?(二)
Windows版本分类比较复杂,下文主要为大家理清Win8/Win8.1的版本种类.如果想了解更多,可以结合<Win7/Win8/Win8.1众多版本,我该选择哪个?>一文来了解. 细数W ...
- C++初始化列表问题
C++初始化列表问题,类中有一个对象类型的数组成员变量,在初始化列表中初始化时报错“[]”操作符语法错误 class ClassA{private ClassB arrayOfObjectClassB ...
- Struts2源代码解读之Action调用
对于Struts2源代码的分析已经有些时日了,虽然网上有很多解读代码,不过自己还是写一个放上来,供大家参考一下. 解读过程: 直接在action类中打断点(包括构造函数和待执行方法)进行debug调试 ...
- unix c 01
gcc编译器(代码的 预处理/汇编/编译/连接) C程序员一般写程序会定义 .c和.h两种文件 .c文件(源文件)中一般放代码的实现,.h文件(头文件)中放 各种声明和定义. gcc -E __. ...
- php5.3 appache phpstudy win7win8win10下 运行速度慢
php5.3 appache phpstudy win7win8win10下 运行速度慢 最近在部署服务器以及本地测试的时候发现了一个奇怪的现象,运行PHP程序的时候非常慢,起先以为是网速的原因,后经 ...
- 后台数据导出为Excel
数据导出的方法如下: 一.下载office的类库:microsoft.office.interop.excel.zip 根据电脑安装的office版本选择引入相应的类库,office2007选择12. ...