Jquery使用AJAX请求跨域解决方法

来源:互联网 发布:java 国际化 编辑:程序博客网 时间:2024/05/23 19:39

在解决方法中使用到jsonp 首先了解jsonp的原理
jsonp原理
Jsonp其实就是一个跨域解决方案。Js跨域请求数据是不可以的,但是js跨域请求js脚本是可以的。可以把数据封装成一个js语句,做一个方法的调用。跨域请求js脚本可以得到此脚本。得到js脚本之后会立即执行。可以把数据做为参数传递到方法中。就可以获得数据。从而解决跨域问题

这里写图片描述
应用

@RequestMapping("getCatList")    @ResponseBody    public Object getCatList(String collBack){        CatResult catResult = itemCatService.getItemCatList();        //把pojo转换成字符串        String json = JsonUtils.objectToJson(catResult);        //拼装返回值        String result = callback + "(" + json + ");";        return result;    ```    首先后台得到jsonp数据后拼装成一个js函数
//前台js访问    URL_Serv: "http://localhost:8081/server/productCat/getCatList?collBack=category.getDataService";    FN_GetData: function() {            // 使用jsonp来实现跨域请求            $.getJSONP(this.URL_Serv, category.getDataService);        }        //请求成功后会调用category.getDataService函数也就是响应回来的js里面的函数需要与上面url后面拼接的一样        getDataService: function(a) {            //这个a就是我们需要的json数据        }