原生js,ajax跨域

来源:互联网 发布:minimax算法写程序 编辑:程序博客网 时间:2024/05/20 00:36

直接贴代码:js文件:

function xmlhttp(){      var xhr = getHttpObj();//得到XMLHttpRequest对象;    xhr.open("post","写上你需要跨域的路径", true);      xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;");// 缺少这句,后台无法获取参数    xhr.onreadystatechange = function() {        if (xhr.readyState == 4 && xhr.status == 200) {          var data = xhr.responseText; //获取后台数据;         var jsonData=eval("("+data+")"); //解析json成json对象(视个人情况而定);          var obj = document.getElementsByName("zhujian");                 ......                    写你的内部逻辑;                      .......           }          };           var content = "appid=11111&sign=222222222";  //传到后台的测试值(可忽略);        xhr.send(content);        } function getHttpObj() {      var httpobj = null;      try {          httpobj = new ActiveXObject("Msxml2.XMLHTTP");      }      catch (e) {          try {              httpobj = new ActiveXObject("Microsoft.XMLHTTP");          }          catch (e1) {              httpobj = new XMLHttpRequest();          }      }      return httpobj;  }

后台程序(我用的框架是SpringMVC):

@Controllerpublic class GetUserListController {    @RequestMapping(value="路径后缀名")    @ResponseBody    public List<String> getUserList(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException{        response.setHeader("Access-Control-Allow-Origin", "*");  //支持跨域访问,*代表你发送的所有请求方域名,也可以单独写你的请求方域名;        response.setHeader("Access-Control-Allow-Methods", "POST,GET"); //支持跨域访问;        List<String> list = new ArrayList<String>();//Map还是List是情况而定;        list.add("测试1");        list.add("测试2");        list.add("测试3");        return list;    }}
原创粉丝点击