Json使用(二)----Json的跨域请求

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hurricane_li/article/details/79255685

应用场景:无法通过普通的ajax请求获取跨域的json数据。

解决方法:

方法一:

 但是script标签的src属性可以跨域,通过返回一个类似于funName("result")的js,即可通过本地的funName方法获取返回的数据“result”。这种情况下的js为:

	$(function(){
		 $("head").append("<script src='http://localhost:8080/index/getData2?callback=fun1'><\/script>");
	})


相应的在服务器端需要使用传来的callback参数将要返回的数据包裹起来,包裹的方法有两种:

1.手动拼接字符串,代码为:

String result1 = callback+"({\"a\":{\"b\":{\"c\":\"1.json\"}}})";

2.使用Spring框架提供的MappingJacksonValue类,代码为:

		MappingJacksonValue value = new MappingJacksonValue(user);
		value.setJsonpFunction(callback);


方法二:

 使用jQuery调用跨域服务器获取json数据,使用jsonp技术:

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


在服务器端不需要任何修改,像正常情况下使用@ResponseBody注解返回为json即可。

猜你喜欢

转载自blog.csdn.net/hurricane_li/article/details/79255685
今日推荐