angularjs每次发送$http都把所有数据当作一个key,value为空发出去


clipboard.png
chrome浏览器中的发送数据如上图,注意最后那个冒号,冒号前面是key,后面value是空的。
我的发送代码如下:


 $scope.loginJump = function(info){
    $http({
        url:'http://192.168.1.54:8080/retailer/user/auth',
        method:"POST",
        headers: {
            'Content-Type': 'application/x-www-form-urlencoded'
        },
        data: {
            userName: info.staffID,
            userPass: info.password,
            checkCode: info.security
        },
        success: function(data){
            alert(data);
        },
        error: function(err){
            alert(err);
        }
    });
};

cors json angularjs

折笠富美子 10 years ago

直接放在data里会把参数以json的形式直接放在body发出去,而你的headers里面又设置成了content-type是application/x-www-form-urlencoded,所以就会被认为是formdata,但是其实整个都当一个key了。

当然直接用json把数据post上去其实就没问题了,如果你一定要post form data的话,应该要自己拼出来或者用jquery的$.param之类的方法来做。

hcd123 answered 10 years ago

Your Answer