zoukankan      html  css  js  c++  java
  • Angularjs 跨域post数据到springmvc

    先贴网上己有解决方案链接:

    http://www.tuicool.com/articles/umymmqY  (讲的是springmvc怎么做才可以跨域)

    http://my.oschina.net/zchuanzhao/blog/515059  (讲的是怎么使用Angularjs 将post数据提交到服务端)

    在结合上面两篇文章之后,我在做的时候发现,angularjs在提交post时有些问题。必须要这么写才行。

     return $http({
                method:'POST',
                url:apibaseurl+'/**/checkUser',
                data:'name='+credentials.name+'&pwd='+credentials.password,
                //contentType: 'application/json',  'application/x-www-form-urlencoded'
                headers:{
                    'Content-Type': 'application/x-www-form-urlencoded'
                }
    
            }).success(function(data){
                return data;
            }).error(function(data){
                return null;
            })

    即post的数据不能以json的形式发过去,若以json的行式发的话,做报403之类的异常,改变contenttype的类型为application/json时,就会引发不能跨域异常。最后将post的数据改成字符串的形式才通过。

    下面贴下服务端取数据的代码

    @RequestMapping(value="/checkUser")
        public User checkUser(HttpServletRequest request){
            
            String reqName=StringHelper.ConvertString(request.getParameter("name"),"");// request.getParameter("name");
            String reqPwd=StringHelper.ConvertString(request.getParameter("pwd"),"");
            
            return CheckUserLogin(reqName, reqPwd);
        }

    小节下:

    服务端,将按照第一个链接内的内容,创建一个 filter,重写其 中方法,在web.xml中加入这个过滤器。

    客户端,在做请求时加入“

    headers:{
                    'Content-Type': 'application/x-www-form-urlencoded'
                }

    这个headers参数很重要,少了就不行。

     【转载请标注,From http://www.cnblogs.com/jackicalSong/】 

    注:听说跟浏览器版本有点关系,网上说这种跨域是H5的特性,移动端智能机应该都支持。

  • 相关阅读:
    【JAVA
    【Android
    【开发工具
    【开发工具
    【开发工具
    【Android
    【Android
    【JavaEE】之MyBatis查询缓存
    【JavaEE】之MyBatis逆向工程的使用
    新的起点 Entry KINGSOFT
  • 原文地址:https://www.cnblogs.com/jackicalSong/p/5407940.html
Copyright © 2011-2022 走看看