Jquery ajax使用jsonp实现HTTP请求的跨域

由于浏览器会对非同源的响应内容拦截,所以普通的Jquery.ajax无法正常返回数据,我们使用jsonp格式的Jquery.ajax能够解决这个问题

前端代码

$.ajax({
    type: "get",
    url: "http://localhost/test",
    dataType: "jsonp",
    success: function(data) {
        var result = JSON.stringify(data); //json对象转成字符串
        console.log(result);
    }
});

前端唯一的不同就是json->jsonp

服务端代码

@RestController
public class JsonpController {
    @RequestMapping("test")
    public String test(String callback) {
        String result = callback + "(%s)";
        result = String.format(result, "{'result':'success'}");
        return result;
    }
}

服务端使用spring MVC的Controller,只需要获取到请求参数中的callback参数,把结果封装成callback(返回json)格式返回就ok了。

猜你喜欢

转载自blog.csdn.net/weixin_37891479/article/details/79967828