Springboot的使用ajax发送PUT和DELETE实例

ajax使用restful服务发送put 和 delete 请求时直接传参会出现问题

一,采用POST + _method:delete/put + filter 的方法

ajax发送put 和 delete 请求时,需要传递参数,如果参数在url地址栏上,则可以正常使用(最下面有这个实例)
如果在 data:中需要传递参数,(浏览器会使用表单提交的方式进行提交) 则需要注意此时应作如下修改:

  1. 请求方式设置为 type:“post”,
  2. 在data中加入 _method:“DELETE”,或者 _method:“PUT” 参数
$(function () {
	 var id = '123456789';
        var codeNumber = '9999999';
        //ajax 提交
        $("#ajaxBtn").click(function () {
            $.ajax({
                url: "http://localhost:8080/code",
                type: "POST",
                data:{_method:"DELETE", id:id,codeNumber:codeNumber},
                dataType:"json",
                success: function (res) {

                }
            })
        })
    })
  1. 后台controller仍为对应的DELETE请求

    @RequestMapping(value = "code", method = RequestMethod.DELETE)
    public void delCode(String id, String codeNumber) {

        log.info("id=============" + id);
        log.info("codName=============" + codeNumber);
    }

请求效果
在这里插入图片描述



二, 仍然使用PUT DELETE请求

1.仍然使用put和delete请求,并且需要传递参数的时候data需要设置为json字符串

   $(function () {
        var id = '123456789';
        var codeNumber = '9999999';
        var jsonStr = {id: id, codeNumber: codeNumber}
        $.ajax({
            url: "http://localhost:8080/code",
            type: "DELETE",
            contentType: "application/json",//设置请求参数类型为json字符串
            data: JSON.stringify(jsonStr),//将json对象转换成json字符串发送
            dataType: "json",
            success: function (result) {
            
            }
        });
    })

后台controller需要使用@RequestBody标注

    @RequestMapping(value = "code", method = RequestMethod.DELETE)
    public void delCode(@RequestBody Code code) { //Code为实体

        log.info("id=============" + code.getId());
        log.info("codName=============" + code.getCodeNumber());
    }

如果有跨越问题需要在方法上面加上注解@CrossOrigin
请求效果
在这里插入图片描述


2. 仍然使用put和delete请求,还有一种办法就是将参数在url地址栏上,接收按正常接收(这种方法不能使用data传值,如果使用data传值,后台会接收不到) (建议使用delete请求的时候使用该方法)
$(function () {
        var id = '123456789';
        var codeNumber = '9999999';
        //ajax 提交
        $("#ajaxBtn").click(function () {
            $.ajax({
                url: "http://localhost:8080/code?id="+id+"&codeNumber"+codeNumber,
                type: "DELETE",
                dataType: "json",
                success: function (res) {
                    alert(1);
                    console.log(res);
                }
            })
        })
    })

后台controller正常接收

@RequestMapping(value = "code", method = RequestMethod.DELETE)
    public void delCode(String id,String codeNumber) {

        log.info("id=============" + id);
        log.info("codName=============" + codeNumber);
    }

请求效果
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值