http://blog.csdn.net/roguestudys/article/details/50837409

 

何为跨域,浏览器同源策略,凡是发送请求url的协议、域名、端口三者之间任意一与当前页面地址不同即为跨域。

跨域请求在很多地方用到,但是浏览器常常是阻止访问,为了解决这个问题,查询一些资料,实现了其功能。

采用如下方法,ajax jsonp请求:

 

前台:

function requestMethed()
    var the_url = "http://www.***.com/controller/todo.do";
    var data = {
        name :name,
        password :password
    };
    $.ajax({    
        type : "post",
        url : the_url,
        dataType : "jsonp",
        data : data,
        jsonp: "callback",
        jsonpCallback:"success_jsonpCallback",
        success : function(data){
            if(data.result == 1){
                alert("成功!");
            }else{
                alert("数据错误");
            }
        },

        error : function(){
            alert("-- fail --");}});
        }
    })
}

 

 

后台:

@RequestMapping("todo.do")
public void todo(HttpServletRequest request,HttpServletResponse response) throws IOException{
        String callback = request.getParameter("callback");
        String jsonData = "{\"result\":\"1\"}";
        
        String name = request.getParameter("name");
        String password = request.getParameter("password");

        if("".equals(name) || "".equals(password)){
            jsonData = "{\"result\":\"-1\"}";
        }
                //TODO something
                String retStr = callback + "(" + jsonData + ")";
                response.getWriter().print(retStr);
}