打造CakePHP Ajax请求Action
在CakePHP的开发模式下,也就是Debug为2的时候,CakePHP会自动显示Sql查询语句及程序执行时间。当要用到Ajax去请求Action的时候难免会被这些语句干扰,使Javascript难解析出Ajax请求后的数据。为此可以这样来定义Ajax请求的action。
PHP代码
- function ajaxaciton() {
- $this->layout = '';
- // 禁止自动Render,免去为此Action去建View的烦扰
- $this->autoRender = false;
- // 手动定义为运营模式,去除debug信息
- Configure::write("debug", 0);
- //以utf-8的文本模式输出
- header("Content-type: text/plain; charset=utf-8");
- /*您的程序*/
- // 输出整理后的数据
- echo $message;
- }
生成Ajax对象 支持Ie Firefox Opera
生成Ajax对象 支持Ie Firefox Opera,代码如下:
Ajax代码
- function ajax() {
- var xmlHttp;
- try { // for firefox opera
- xmlHttp = new XMLHttpRequest();
- } catch (e) { // for ie
- var ieVersions = new Array("MSXML2.XMLHTTP.6.0",
- "MSXML2.XMLHTTP.5.0",
- "MSXML2.XMLHTTP.4.0",
- "MSXML2.XMLHTTP.3.0",
- "MSXML2.XMLHTTP",
- "Microsoft.XMLHTTP");
- for (var i = 0; i < ieVersions.length && !xmlHttp; i ++) {
- try {
- xmlHttp = new ActiveXObject(ieVersions[i]);
- } catch (e) {
- }
- }
- }
- if (!xmlHttp) {
- return false;
- } else {
- return xmlHttp;
- }
- }
