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()+"'})";

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值