为什么angularJs你改成Base64Format

时间:2017-01-13 14:32:29

标签: angularjs

我试图将一些数据上传到sqlser中从mvc-to-webApi为什么我的url没有绑定那个pat而且它的转换到Base64Format

http://localhost:30952/api/EmpSave/?0=%7B&1=%22&10=%22&11=a&12=a&13=%22&14=,&15=%22&16=G&17=e&18=n&19=_&2=E&20=I&21=d&22=%22&23=:&24=%22&25=1&26=%22&27=,&28=%22&29=C&3=_&30=o&31=u&32=n&33=t&34=r&35=y&36=I&37=d&38=%22&39=:&4=N&40=1&41=,&42=%22&43=S&44=t&45=a&46=t&47=e&48=I&49=d&5=a&50=%22&51=:&52=1&53=,&54=%22&55=C&56=i&57=t&58=y&59=I&6=m&60=d&61=%22&62=:&63=2&64=%7D&7=e&8=%22&9=:

cntrl.Js

 $scope.SaveDb = function (emp) {
        if ($scope.SubmitText == "Save") {
            var saving = MyService.SaveEmp(emp);
        }
    }

service.Js

 var ApiUrl = "http://localhost:30952/"
     this.SaveEmp = function (emp) {
            var saves = $http({
                url: ApiUrl+"api/EmpSave/",
                method: "POST",
                params: JSON.stringify(emp),
                dataType:JSON,
                content: { 'content-Type': 'application/Json' }

            })
            return saves;
        }

1 个答案:

答案 0 :(得分:0)

首先,这不是base64编码。这是URL编码。

之所以发生这种情况,是因为您将对象转换为JSON字符串,然后将结果作为$ http参数传递。 params进入URL的查询字符串,然后对它们进行编码以使URL有效。

您可能希望将JSON作为请求的正文发送。正确的方法是

$http({
    url: ApiUrl+"api/EmpSave/",
    method: "POST",
    data: emp
});

或只是

$http.post(ApiUrl+"api/EmpSave/", emp);

所有这一切以及其他内容当然都在the documentation详细说明。