主页 > 系统开发 > ajax 404错误?

ajax 404错误?

2022-11-15 04:06来源:m.sf1369.com作者:宇宇

一、ajax 404错误?

记录下今天遇见的一个问题,一个删除的ajax请求,传递一个主键到后台,后台成功接受并执行删除,但是前端报POST404错误。

查找原因是由于Controller忘记写返回状态码 @Responsebody

spring对返回值映射时找不到对应的视图,所以返回404

二、thinkphp网站如何设置指定url的404跳转?

thinkphp框架有提供_empty,

<?php

namespace Home\Controller;

use Think\Controller;

class CityController extends Controller{

    public function _empty($name){

        //把所有城市的操作解析到city方法

        $this->city($name);

    }

    //注意 city方法 本身是 protected 方法

    protected function city($name){

        //和$name这个城市相关的处理

         echo '当前城市' . $name;

    }

}

三、thinkphp如何用空操作和空方法解决404问题?

>这样子不行.对了我没有分组. 会影响到这个功能的实现吗.你除了 创建一个 EmptyAction 空模块 以外, 还要在每个控制器里面都要建立一个 _empty 方法才行。 每个控制器里面都有。 当然可以用 公用类来避免这样重复的操作。建立一个公用类控制器:CommonAction.class.php<?phpclass CommonAction extends Action{function _empty(){header(Location: /404.html);}}?>复制代码然后 让其他控制器 都继承这个控制器, 如 IndexAction extends CommonAction 这样就行了。你贴出的 empty方法的代码 好像也有点问题。header(Location: /404.html); 你这段代码 都已经转向了。

四、在thinkphp里使用ajax 一直执行回调error。

分页等很多地方都可以使用到ajax技术,可以实现无刷新请求服务器,就是所谓的异步传输,在Thinkphp中也提供了ajax支持,在其中有一个ajaxReturn() 方法(ajax返回参考如下:

if(data.status==0){

//失败

ess.innerHTML=data.info; // 消息显示的内容为返回的提示信息。

}esle if(data.status==1){

//成功

mess.innerHTML=data.info;

}

}

五、thinkphp ajax文件上传怎么老是提示文件不存在

有个疑问:你用的Thinkphp是什么版本的?是3.2吗?

怎么直接使用Upload类了?不是应该$upload = new \Think\Upload();// 实例化上传类

吗?

Thinkphp文件上传:

用ajax的话:这几个参数应该是 要设置的:

cache: false,

enctype: 'multipart/form-data',

contentType: false,

processData: false,

另外,data应该这样写吧:

{'file':$(#file).get(0).files[0];}

不能直接用val()方法写取的。

文件不是这么传的,你可以用一些比较专业的jquery插件上传,比较uploadfiy,swfupload,都可以实现异步上传,满意请采纳

六、thinkphp中ajax请求的值data

一般将前台页面搜索结果中,不喜欢的内容(链接),删除掉,因为整个网站的编程框架式thinkphp,运用js中的ajax对页面进行响应,调用后台php接口,实现前台和后台数据库的同时更新.

首先我们需要做的就是在前台页面中添加一个文本“删除”,可以这么添加:

复制代码代码如下:

<a href=javascript:void(0); id= <php>echo $val[id]</php> class=delete >删除</a>

上面的html代码的意思:就是给删除添加一个href,这个href是个js函数,类似于超链接的作用,当然对于我这样的新手在刚开始的时候会有疑惑,我们平时的超链接不是这样的,网页中很多的javascript:void(0),那程序怎么知道用户点击删除后,会响应其真正对应的js函数呢?别急,这就是为什么会为删除添加id以及class这样的标签,相信我把js中的代码公布出来以后你就会明白了,代码如下:

复制代码代码如下:

jQuery(.list a.delete).click(function(){

if(confirm(你确定要删除吗?)){

var _this=this;

var id = jQuery(_this).attr(id);

jQuery.ajax({

url : '/Search/index.php/Jason/delete?',

data : {'id':id},

dataType : 'json',

success : function(data){

var del = data.del;

if(del == 1){//删除成功

jQuery(#+id).parents(.list).remove();

}else{//删除失败

alert(删除失败);

}

}

});

}

});

大家看函数的头部:jQuery(.list a.delete).click(),jQuery后面的标签是很重要的,这就保证了jquery很准确的响应页面中用户点击的“位置”,添加的事件为click(),在click里添加响应事件的代码:var id = jQuery(_this).attr(id);获取a对应的id,因为这个id是我们删除数据库时用到的链接id,当然这种直接明文的方式不好,在这里只是介绍整个响应过程。调用ajax,实现异步的运行整个过程。我们设置了js接受的是json串,这里的方式应该有很多种吧,我没有去尝试,大家要是有兴趣可以自行尝试一下。/Search/index.php/Jason/delete?这句话就是js去请求php的接口,php接口对用的代码如下:

注意ajax在求php接口时的路径,也就是delete函数必须放在JasonAction.class.php中,此例子是必须这样的:

复制代码代码如下:

public function delete(){

if($this->isGet()){

$userId = session(uid);//用户登录

if(!empty($userId)){

$a = M('***');

$id = $this->_get('id');

$result=$a->where(id=$id)->delete();//删除

if($result > 0){

$arr = array(del=>'1');

}else{

$arr = array(del=>'0');

}

$json_str = json_encode($arr);

echo $json_str;//返回给js

}

}

}

相信大家对上面的代码不会陌生吧,整个过程都是thinkphp框架内部配置完毕的.

var del = data.del;这句是接受php代码返回来的json串中del这个key的value,进而在前台进行页面更新和响应.

复制代码代码如下:

if(del == 1){//删除成功

jQuery(#+id).parents(.list).remove();//这句话就是后台删除成功后,直接在前台对响应的div进行删除,这样性能就会很快,无需进行后台数据的重新提取至前台页面中,

}else{//删除失败

alert(删除失败);

}

整个响应的过程就是这样,至于效果优化,是优化和细化方面的问题,后来,身边的同事又告诉我前台移除响应链接的另一个动态效果:

即将:

复制代码代码如下:

jQuery(#+id).parents(.list).remove();

替换为:

复制代码代码如下:

jQuery(#+id).parents(.list).slideUp(slow, function(){

jQuery(this).remove();

});

相关推荐

请教ESB是如何实现系统集成的

系统开发 2024-01-18

如何成功实施管理信息系统?

系统开发 2023-12-28