Spring MVC实现远程调用并获取返回值

ajax跨域请求:

$("#jifei").click(function() {

        Tips.confirm("确认计费?", function() {
            var cmd_uuid = $('input[name="cmd_uuid"]').val();
            $.ajax({
                url : "http://127.0.0.1:8083/tally/command/tally-order-reset",
                data : {
                    "cmd_uuid" : cmd_uuid
                },
                type : "get",
                success : function(re) {
                    Tips.tips(re.msg,re.success);
                },
                error : function(data) {
                    Tips.tips(data.msg+"返回失败");
                }
            });
        });

在被请求项目里面的spring.xml中加上:(注意:这里需要引用spring4.2及版本更高的,否则不支持<mvc:cors>)

<mvc:cors>
        <mvc:mapping path="/**" allowed-origins="*" allow-credentials="true" max-age="1800" allowed-methods="GET,POST,OPTIONS"/>
 </mvc:cors>

如果添加了拦截器需要把/tally/command/tally-order-reset加上去:

<mvc:interceptor>
            <mvc:mapping path="/**" />
            <mvc:exclude-mapping path="/tally/command/tally-order-reset" />
            <bean class="com.feiliks.hn.common.interceptor.PermissionInterceptor" />
 </mvc:interceptor>

然后再被请求的tally-order-reset方法上面加上:@CrossOrigin 代码如下

@CrossOrigin(origins = "*", maxAge = 3600)
@RequestMapping("tally-order-reset")
@ResponseBody
public ResponseModel reset(Long cmd_uuid){
        Boolean ret = true;
        ret = this.redisDao.setIfAbsentValue("tally-order-reset:" + cmd_uuid.toString(), 1);
        if (ret){
            this.redisDao.expire("tally-order-reset:" + cmd_uuid.toString(), 3, TimeUnit.MINUTES);
            this.tallyOrderService.reset(cmd_uuid);
            this.redisDao.delKey("tally-order-reset:" + cmd_uuid.toString());
        }else{
            ErrorType et = this.redisDao.getHashValue(RedisCacheTableKey.KEY_ERROR_TYPE, "S0001", ErrorType.class)==null?new ErrorType("S0001") : this.redisDao.getHashValue(RedisCacheTableKey.KEY_ERROR_TYPE, "S0001", ErrorType.class);
            return super.fail(et.getTrace(), et);
        }
        return super.success("计费成功!");
        
    }

通过以上方法,就能够实现ajax跨域请求并能够获取返回值,希望能给大家帮助。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值