我试图将一些数据上传到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;
}
答案 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详细说明。