当需要跨域访问时可以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()+"'})";