首页 > 代码库 > angular跨域问题

angular跨域问题

经过各种尝试,angular的$post 无法获得服务端响应,服务端参数进不去。

var login = angular.module(‘login‘,[]);

        login.controller(‘loginctr‘,function($scope,$http){
            
            $scope.submit = function(){
                
                $http({
                    method:‘POST‘,
                    url:‘‘,
                    data: {"username":"admin","password":"admin"}
                }).then(
                    function(e){
                        console.log(e)
                    },
                    function(e){
                        console.log(e)    
                    }
                )
            }
            
        })    

 

使用JQuery可以获得返回值

$(function(){
            $.ajax({
                type:"post",
                dataType: ‘text‘,
                url: "",
                data:{"username":"admein","password":"admin"},
                success : function(data){
                    console.log(data)
                    //var a = eval(data);
                    //console.log(a[3])
                },
                error : function(e){
                    console.log(e)
                }
            });
        })

网上资料很多,先后尝试在JAVA服务端头部加入  

response.setHeader("Access-Control-Allow-Origin", "*"); //允许所有域名访问

还是不可以,报错仍然为跨域问题。

再在angular中配置config的$httpProvider
因为说JQuery post的数据格式是字符串,angular post的数据格式为json,是格式问题。
配置解读地址 http://www.aichengxu.com/javascript/2444602.htm

配置后仍无法解决该问题。
最后尝试将 angular里的data参数改为params,可以正常接收服务端响应,算是解决问题。

根据Angular官方文档,加上params可以参数就可以转换成key1=value1&key2=value2格式,和jQuery传递的数据格式(请求前也会将json数据序列化)一样了



angular跨域问题