2015-11-17 3 views
1

Я пытаюсь использовать веб-сервис с REST угловым ($ http). ГЭТ в порядке, но когда я пытаюсь сделать изменения с $ 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 Я 2, говоря:

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); 
 
     }

Заголовок моей fonction:

[ResponseType(typeof(void))]

Что эта проблема ?? Благодаря

+0

, что restfull услуги лань у вас есть ? –

+0

Вы можете попробовать следующее: http://stackoverflow.com/questions/33660712 –

+0

my Service: 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>