2017-01-13 38 views
0

在这里,我想一些数据uplode到sqlser从MVC到的WebAPI为什么我的网址不绑定,拍拍以及其comverting到Base64Format为什么angularJs乌尔改变成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

之间我需要空间在url?Evne没有使用 –

+0

如果你需要空间在url之间,那么url会被编码并转换成base64。浏览器不会占用任何空间,它会替换%20的空间,对于'''它会替换成%22。“更多信息请查看http://www.w3schools.com/tags/ref_urlencode.asp –

回答

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详细的。

+0

它说,不支持Meadia类型 –

+0

这是一个后端的问题。您的服务器似乎不接受JSON。 –

+0

那我该怎么red req for json?但是我试着从s/r中获取数据好的 –