2015-11-17 22 views
1

我嘗試使用REST角度($ http)來使用Web服務。 一開始是好的,但是當我試圖讓與$ http.put的變化,會出現如下錯誤:

XMLHttpRequest cannot load http://10.2.150.238:90/api/Collaborateurs/1. Response for preflight has invalid HTTP status code 405.
enter image description here

更新功能:

.factory('UpdateCollaborateur', function ($http, config) { 
 
    var fac = {}; 
 
    fac.Update = function (matricule,collaborateur) { 
 
     return $http.put(config.apiUrl + 'Collaborateurs/'+ matricule, collaborateur); 
 

 
    }; 
 
    return fac; 
 
})

WEB AP I 2,放:我fonction的

public IHttpActionResult PutCollaborateur(int id, Collaborateur collaborateur) 
 
     { 
 
      if (!ModelState.IsValid) 
 
      { 
 
       return BadRequest(ModelState); 
 
      } 
 

 
      if (id != collaborateur.matricule_collaborateur) 
 
      { 
 
       return BadRequest(); 
 
      } 
 

 
      db.Entry(collaborateur).State = EntityState.Modified; 
 

 
      try 
 
      { 
 
       db.SaveChanges(); 
 
      } 
 
      catch (DbUpdateConcurrencyException) 
 
      { 
 
       if (!CollaborateurExists(id)) 
 
       { 
 
        return NotFound(); 
 
       } 
 
       else 
 
       { 
 
        throw; 
 
       } 
 
      } 
 

 
      return StatusCode(HttpStatusCode.NoContent); 
 
     }

頁眉:

[ResponseType(typeof(void))]

這是什麼問題? 感謝

+0

什麼問題的REST服務母鹿你有? –

+0

你可以試試這個:http://stackoverflow.com/questions/33660712 –

+0

我的服務:WEB API 2 – ALFA

回答

1

405意味着該方法是不允許

如果使用[HttpPut]確保你的webconfig.xml允許它

請嘗試以下

<system.webServer> 
    <handlers> 
     <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" /> 
    </handlers> 
    </system.webServer>