关键:ajax的dataType为jsonp,并且在请求的url中加上"?jsoncallback=?"
前台代码:
- <scripttype="text/javascript"src="jquery-1.7.2.min.js"></script>
- <scripttype="text/javascript">
- functionRegisterRequest2(){
- /*getJSONmethodisokalso...
- $.getJSON("http://192.168.1.154:7087/ClusterServer/Rigister?jsoncallback=?",{pwd:'123',username:'tl'},function(json){alert(json.name);});
- */
- $.ajax({
- url:"http://192.168.1.154:7087/ClusterServer/Rigister?jsoncallback=?",
- type:"GET",
- data:{pwd:'123',username:'tl'},
- dataType:"jsonp",
- success:function(data){
- alert(data.name);
- },
- error:function(a,b,c){
- alert("error=="+b);
- }
- });
- }
- </script>
- <inputtype="button"onclick="RegisterRequest2();"value="StartRequest"/>
后台Servlet代码:
- importjava.io.IOException;
- importjavax.servlet.ServletException;
- importjavax.servlet.http.HttpServlet;
- importjavax.servlet.http.HttpServletRequest;
- importjavax.servlet.http.HttpServletResponse;
- publicclassRigisterextendsHttpServlet{
- @Override
- protectedvoiddoGet(HttpServletRequestreq,HttpServletResponseresp)
- throwsServletException,IOException{
- Stringpwd=req.getParameter("pwd");
- Stringusername=req.getParameter("username");
- System.out.println("get=="+username+"==="+pwd);
- Stringcallback=req.getParameter("jsoncallback");
- resp.getWriter().write(callback+"({name:'tzy',phone:'123'})");//参数为json格式
- }
- @Override
- protectedvoiddoPost(HttpServletRequestreq,HttpServletResponseresp)
- throwsServletException,IOException{
- Stringpwd=req.getParameter("pwd");
- Stringusername=req.getParameter("username");
- System.out.println("post=="+username+"==="+pwd);
- Stringcallback=req.getParameter("jsoncallback");
- resp.getWriter().write(callback+"({name:'tzy',phone:'123'})");
- }
- }
后台返回前台的时候取出jsoncallback回调函数名,将json格式的数据作为函数的参数,整个以字符串的形式返回给前台。。