php为什么我ajax返回值为1为什么前台接收alert(data)显示的确实整个网页页面的html代码
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php为什么我ajax返回值为1为什么前台接收alert(data)显示的确实整个网页页面的html代码,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3052字,纯文字阅读大概需要5分钟。
内容图文
php 为什么我ajax返回值为1 为什么前台接收alert(data)显示的确实整个网页页面的html代码(我使用了smarty 也返回的值 页面也是在smarty模板里面)
回复讨论(解决方案)
在php输出1后面加上exit;就可以了
还是不可以!求指导
那是你对 ajax 请求也做了全程处理
通常只要做业务逻辑即可
可以说的更具体点吗?
要看到 admin.php 的代码
class adminController{
public function __construct(){
session_start();
if(!(isset($_SESSION['username']))&&(PC::$method!='login')&&(!$_COOKIE['username'])){
$this->showmessage('请登录后在操作!', 'admin.php?controller=admin&method=login');
}else{
$this->auth = isset($_SESSION['username'])?$_SESSION['auth']:array();
}
}
public function login(){
if (!isset($_POST['submit'])){
VIEW::display('admin/login.html');
}else {
$this->checklogin();
}
}
public function checklogin(){
$username = daddslashes($_POST['username']);
$password = md5(daddslashes($_POST['password']));
$auth=M('admin')->findOne_by_username($username);
if((!empty($auth))&&$auth['password']==$password){
$_SESSION['username']=$username;
//setcookie('username',$username,time()+3600*12);
echo 1;
exit;
//echo "";
}elseif (empty($auth)){
echo "用户不存在";
exit;
//$this->showmessage("用户不存在",'admin.php?controller=admin&method=login' );
}elseif ((!empty($auth))&&$auth['password']!=$password){
echo "密码错误";
//$this->showmessage("密码错误",'admin.php?controller=admin&method=login');;//密码错误
}
}
admin.php是入口文件
<?php
header("Content-type: text/html; charset=utf-8");
//url形式 index.php?controller=控制器名&method=方法名
require_once('config.php');
require_once('framework/pc.php');
PC::run($config);
你在使用某个框架,那么这个框架应该有一个 ajax 模式
通常框架会完成完整的流程,从而输出页面 html
但是 ajax 一般是不需要输出页面的,所以应开启 ajax 模式,以使工作流程发生改变
不 这是我自己写的一套一个简易的微型框架
在设定的时候 我没有写任何关于ajax的
然后我把mvc的视图层中引入了smarty模板引擎
自己写的,就得补上
ajax 和 普通页面 的输出方式不同,统一处理自然就是有毛病的
如果用ajax请求,那么加上一个参数告诉入口程序admin.php,不要加载模板。
这里,
$.ajax({
url:'admin.php?controller=admin&method=login',
...
});
没有提交 $_POST['submit'])
admin控制器里面的
public function login(){if (!isset($_POST['submit'])){VIEW::display('admin/login.html');}else {$this->checklogin();} }
方法
则执行 VIEW::display('admin/login.html');
所以,模板加载了。
建议用firefox的firebug或者chrome核心浏览器的开发者工具的newwork,提交一下,看下有没有提交过去submit这个参数。
或者检查一下form1里面有没有name是submit的值
谢谢 我试试看啊 说不定还得请教你
这是我用firebug弄的
响应啊 submit也都有
写日志一步步跟踪看看。
要保证echo 1之后再没有任何形式的文本输出,然后把对应页面的php结束符号 ?> 去掉
直接把ajax访问地址及参数放浏览器执行看看就知道了,在一步一步调试
ajaxReturn
可以说的更具体点吗?
我也遇到了一样的问题,该怎么解决啊内容总结
以上是互联网集市为您收集整理的php为什么我ajax返回值为1为什么前台接收alert(data)显示的确实整个网页页面的html代码全部内容,希望文章能够帮你解决php为什么我ajax返回值为1为什么前台接收alert(data)显示的确实整个网页页面的html代码所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。