2017-01-13 37 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中獲取數據好的 –