jqueryドメイン間リクエストJava
1707 ワード
最近,プロジェクトはjqueryドメイン間リクエストを使用する必要があるため,検討した.とうとう成功した.ここでコードを書いて共有します.
jqueryはドメイン間でフロントバックグラウンドで協力する必要があることに注意してください.
クライアント
<%@ page language="java"contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
Insert title here
function testfn()
{
$.ajax({
type : "get",
//async:false,
url : "http://www.test.com:8081/newcqa/indexutil/test",
dataType : "jsonp",
jsonp:「callbackparam」//要求ハンドラまたはページに渡され、jsonpコールバック関数名を取得するためのパラメータ名(デフォルト:callback)
jsonpCallback:「ajaxTestFn」//カスタムjsonpコールバック関数名、デフォルトはjQueryが自動的に生成するランダム関数名
success : function(json){
alert(json["test"]);
},
error:function(){
alert('fail');
}
});
}
function ajaxTestFn(json)
{
alert(22+"---"+json);
}
サービス側コード
jqueryはドメイン間でフロントバックグラウンドで協力する必要があることに注意してください.
クライアント
<%@ page language="java"contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
function testfn()
{
$.ajax({
type : "get",
//async:false,
url : "http://www.test.com:8081/newcqa/indexutil/test",
dataType : "jsonp",
jsonp:「callbackparam」//要求ハンドラまたはページに渡され、jsonpコールバック関数名を取得するためのパラメータ名(デフォルト:callback)
jsonpCallback:「ajaxTestFn」//カスタムjsonpコールバック関数名、デフォルトはjQueryが自動的に生成するランダム関数名
success : function(json){
alert(json["test"]);
},
error:function(){
alert('fail');
}
});
}
function ajaxTestFn(json)
{
alert(22+"---"+json);
}
サービス側コード
@RequestMapping(value = "/test")
public void test(HttpServletRequest request,
HttpServletResponse response, ModelMap model) throws IOException
{
JSONObject json = new JSONObject();
String callbackFunName = request.getParameter("callbackparam");
json.put("test", true);
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
out.write(callbackFunName +"("+json.toString()+")");
}