ANGULAR $ http.put REST

时间:2015-11-17 08:35:35

标签: angularjs rest http put

我尝试使用REST角度($ http)使用Web服务。 GET没问题,但是当我尝试使用$ 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 API 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);
        }




我的功能标题:



 [ResponseType(typeof(void))]




这是什么问题? 感谢

1 个答案:

答案 0 :(得分: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>