热门搜索 :
考研考公

利用http协议如何实现跨域

发布网友 发布时间:2022-04-20 05:07

我来回答

1个回答

热心网友 时间:2023-09-17 08:47

$.getJSON()方法跨域 去取得服务器的json对象的时候,url的后缀最后带一个"callback=?"的参数作为成功的回调函数;如:
JS代码:

var url = "${BIPJS}/intf/accountsOfRefuseEmail.jsp?act=add&siteId=${LANG.siteId}&accountId=${loginId}&callback=?";  

$.getJSON(url, {} , function(data) {    

var code = data.code;    

if(code == 0){    

$('#floatOne').myFadeIn();    

}    

});  

此时返回的data是一个json对象;相应地,服务器返回字符串应该要这种样式:
JAVA代码:

String callback = T.stringValue(getRequestParams(request,"callback"),"");  

JSONObject jo = new JSONObject();  

out.print(callback + "(" + jo + ")");

原理:
Jquery在解析请求callback=?的时候,会自动生成一个callback=jsonp***的字符串,这个字符串jsonp***在成功回调的时候作为一个方法,被Jquey自动执行,参数是一个json格式的字符串(这里是data)。相应地;服务器返回的字符串要这种形式:jsonp***(JSONObject)。

如:刚上面的url被Jquey解析成:

Request URL:

http://localhost.pcauto.com.cn:12385/intf/accountsOfRefuseEmail.jsp?act=add&siteId=2&accountId=388&callback=jsonp1381976698163&_=13819767019

服务器返回的字符串形式:

jsonp1381976698163({"code":0,"msg":"增加用户成功"})

Jquery的回调方法jsonp1381976698163(jsonStr)就是要把字符串jsonStr转换成josn对象,这里就是转换成data这个json对象。

声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
Top