您的位置:首页 > Web前端 > JavaScript

使用jsonp解决web远程调用跨域问题

2017-03-18 10:50 549 查看
JSONP(JSON with Padding)是JSON的一种“使用模式”,可用于解决主流浏览器的跨域数据访问的问题。

跨域问题

浏览器一个安全的限制,不允许js跨域请求资源,

www.a.com -> www.b.com 跨域

www.a.com -> www.a.com 非跨域

www.a.com -> www.a.com:8081 跨域

jsonp的原理

浏览器在js请求中,是允许通过script标签的src跨域请求,可以在请求的结果中添加回调方法名,在请求页面中定义方法,既可获取到跨域请求的数据。

springmvc应用实例

前端调用
URL: "http://localhost:8081/data?callback=category.getDataService"
服务器web接口
@RequestMapping(value="/data", produces=MediaType.APPLICATION_JSON_VALUE + ";charset=utf-8")
@ResponseBody
public String getData(String callback) {
string json="{"name": "a","url": "http://www.a.com"}";
return callback + "(" + json + ");";
}
注:以下代码解决乱码问题
import org.springframework.http.MediaType;
@RequestMapping(value="/data",
produces=MediaType.APPLICATION_JSON_VALUE + ";charset=utf-8")
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: