jsonp解决跨域问题

当需要跨域访问时可以jsonp来完成,如下:

$.ajax ({
url: "http://localhost:9090/GraphDataBase/updateBySql",
type: "GET",
data: {"sql":query},
dataType: "jsonp",
success: function(data){
.....
},
error: function(XMLHttpRequest, textStatus, errorThrown,data) {
console.log("error");
}
});

虽然可以访问成功,但是无法进入到success中,只能进入到error,导致无法获得后台的传值。
但是所辛的是jsonp可以指定一个回调函数,而回调函数可以接收传值。
回调函数名由服务端决定,由服务端返回一个格式如下的字符串(我自己揣摩的,能用):函数名+({'key':'value',...})。
比如返回:callBack({'name':'xiaohong'}),那么在js中,那么回调函数名为callBack(data),在回调函数callBack中就可以收到data = {msg: "update success"}.

js为:
$.ajax ({
url: "http://localhost:9090/GraphDataBase/updateBySql",
type: "GET",
data: {"sql":query},
dataType: "jsonp",
success: function(data){
...
},
error: function(XMLHttpRequest, textStatus, errorThrown,data) {
console.log("error");
}
});


function successCallback(data){
console.log("请求成功");
}

java 控制器:
return "successCallback({'msg':'"+responseContent.getMsg()+"'})";

阅读更多
文章标签: jsonp ajax 跨域请求
个人分类: jquery
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭