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

jsp + jquery 實現跨域訪問 --返回json

2013-01-17 18:04 288 查看
引用:http://blog.csdn.net/lshaohe/article/details/4954760

近日由於開發需要,要用到跨域訪問數據,查了一下資料,發現主要有兩種方法:

1,直接用js訪問格式如

[javascript] view plaincopy

<mce:script src="<%=page_url%><!--

?method=jsonInfo&moduleid=359&pageid=1&pagesize=7&count=25&colsize=2">

// --></mce:script>

後臺用

[java] view plaincopy

HTML2TEXT.JAVA

public static String string2Json(String s) {

StringBuilder sb = new StringBuilder(s.length()+20);

sb.append('/"');

for (int i=0; i<s.length(); i++) {

char c = s.charAt(i);

switch (c) {

case '/"':

sb.append("///"");

break;

case '//':

sb.append("////");

break;

case '/':

sb.append("///");

break;

case '/b':

sb.append("//b");

break;

case '/f':

sb.append("//f");

break;

case '/n':

sb.append("//n");

break;

case '/r':

sb.append("//r");

break;

case '/t':

sb.append("//t");

break;

default:

sb.append(c);

}

}

sb.append('/"');

//System.out.println(sb.toString());

return sb.toString();

}

out.print("document.write("+Html2Text.string2Json (str.toString())+")");

注:script 訪問的連接後臺(action 或servlet 或jsp等。。)返回的數據是您要先顯示在網頁中的內容,即是您要在後臺排好

版后才返回數據

2,利用現成js框架庫,這裡我用的是jquery

步驟如下

前臺在js方法里如下

[javascript] view plaincopy

。。

var url = 'http://localhost:8080/testjson/testJsonServlet?callback=?';

$.getJSON(url, function(jsonContent){

alert(jsonContent.status);

});

後臺

[java] view plaincopy

response.setContentType("text/html");

PrintWriter out = response.getWriter();

String callback = request.getParameter("callback");

//request.setAttribute("msg", callback+"({ status: '1', info:'填写正确!'})");

out.print(callback+"({ status: '1', info:'填写正确!'})");

System.out.println("in");

out.flush();

out.close();

注:1:這裡的前臺和後臺如果是跨域的話,是在不同的工程裡面的,但不跨域的話,也可在同一工程裡面,畢竟不跨域是

跨域的特殊化

2:特別要主要前臺的這裡

var url = 'http://localhost:8080/testjson/testJsonServlet?callback=?' ;

和後臺的這裡

String callback = request.getParameter("callback");

out.print(callback+"({ status: '1', info:'填写正确!'})");

輸出的json數據要加上callback參數,否則就跨域不了了,這里是關鍵哦。。

呵呵采用方法2的返回json數據的話不用手工編寫{ status: '1', info:'填写正确!'}

這種格式的,有個json的jar包的,轉為jsonobject就可以的拉,到網上去搜索一下吧,

就交流這么多先,不明的可以留言哦,還望各位大蝦多多指點哦

呵呵:我上傳了個例子在我的資源里了,有需要的去下載看看哦,
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐