使用JQUERY解决AJAX的跨域问题

来源:互联网 发布:mysql字符串截取 编辑:程序博客网 时间:2024/04/28 20:08

使用JQUERY解决AJAX的跨域问题

分类: JS JAVA 131人阅读 评论(0) 收藏 举报

使用AJAX技术时,跨域问题是个很大的困扰,所幸JQUERY提供了简单的方法来解决这个问题。

 

假设现在有两台服务器a.uuplay.com和b.uuplay.com,a服需要在页面中调用b服的接口http://b.uuplay.com/checkuser,来检测用户是否存在,可以直接在a服的JS中这样写:

function checkuser(username){
 $.getJSON("http://b.uuplay.com/checkuser?username="+username+"&callback=?", function(data){
  switch(data.rs)
            {
                case "1":
                var advice = "用户名没有注册。";
                break;
                case "0":
                 var advice = "用户名已被注册。";

                break;
                default:
                break;
      }
 });

}

 

服务器b的后端代码如下:

 

response.setContentType("text/html");
response.setHeader("Cache-Control", "no-cache");
PrintWriter out = response.getWriter();
String result = "0"; //0已注册,1未注册
String username= request.getParameter("username");
if(username!= null && username.trim().length() > 0){

boolean exist = false;

 

//查找用户

 

if(exist){
    result = "0";
}else{
    result = "1";
   }
}

}


JSONObject obj = new JSONObject();

obj.put("rs", result);

String callback = request.getParameter("callback");//这个参数是JQUERY传过来的,需要传回前端
StringBuilder sb = new StringBuilder();
sb.append(callback);
sb.append("(");
sb.append(obj.toString());
sb.append(")");
out.println(sb.toString());//最终传给前端的形式是:$callback({"rs":$result})
out.flush();
out.close();