restful规范下的ajax请求

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了restful规范下的ajax请求相关的知识,希望对你有一定的参考价值。


restful 四种请求
get是安全(不管操作多少遍,资源的状态不会变)的,
get,delete,put是幂等(不管操作多少次,结果都一样)的,
post既不安全也不幂等
  put与post比较:增加操作可以使用POST或PUT,区别在于POST 是作用在一个集合资源之上的(/uri),而PUT操作是作用在一个具体资源之上的(/uri/xxx),再通俗点说,如果URL可以在客户端确定,那么就使用PUT,如果是在服务端确定,那么就使用POST,比如说很多资源使用数据库自增主键作为标识信息,而创建的资源的标识信息到底是什么只能由服务端提供,这个时候就必须使用POST。


restful ajax发送请求

客户端:

关于contentType
    默认application/x-www-form-urlencoded
    除默认,常见的还有:
        contentType: "application/json; charset=utf-8",    contentType: "text/xml",
关于get,post,put,delete请求
    发送get请求,上面提到的三种方式都可以,因为get方式,参数是跟在url后边,与Content-Type无关。
    其它请求,就要考虑contentType,设置相应的值了。
关于data
    当有大量参数,可以包装成json格式,通过JSON.stringify()将其序列化进行传输
    例如:data:JSON.stringify(paramObject),//传递json字符串做参数,将来在controller中用@RequestBody接收
    如下:
        var paramObject = {
        "login_name":login_name,
        "nick_name":nick_name,
        "real_name":real_name,
        "email":email
    };
    //发送Ajax请求
    $.ajax({
        url:"http://localhost:8888/spring5/user/"+id,
        type:"put",
        contentType:"application/json",//指定传递新的类型为json
        data:JSON.stringify(paramObject),//传递json字符串做参数,将来在controller中用@RequestBody接收
        dataType:"json",
        success:function(result){
            if(result.status==1){//成功
                window.parent.location.reload();//刷新父窗口
            }else{
                layer.msg(result.msg);//提示失败    
            }
        }
    });




服务端
@ResponseBody//将返回的Java对象转成JSON字符串输出 将请求传过来的JSON字符串转成Java对象

需要明白的是:其实2.对资源的增,删,改,查操作,其实都可以通过GET/POST完成,不需要用到PUT和DELETE。但不符合rest规范
























































以上是关于restful规范下的ajax请求的主要内容,如果未能解决你的问题,请参考以下文章

jQuery封装的ajax方法发送jsonp请求ajax全局事件restful风格的api获取XML数据

跨域 jQuery Ajax 请求和 WCF REST 服务

将restful ajax请求映射到spring

让python bottle框架支持jquery ajax的RESTful风格的PUT和DELETE等请求

vue项目和django项目交互补充,drf介绍,restful规范

rest前端怎么ajax请求delete参数数组