XMLHttpRequest无法加载URL。无效的HTTP状态代码400(Chrome上带有angularJs的WebApi)

时间:2015-08-26 16:25:36

标签: c# angularjs google-chrome asp.net-web-api

我有WebApi应用程序和一个简单的消费Web客户端。我正在使用来自Web客户端的angularJS向webApi发送请求。当然,cors已经启用了。

我在Chrome上遇到问题,但是我使用param将其修复为发送的对象,我认为对Put来说是相同的但是我得到了XMLHttpRequest无法加载URL。无效的HTTP状态代码400'在Chrome上,但它在IE上工作正常。

C#代码:

public void UpdateLampe(int Id, Lampe lampe)
    {

        var context = new eDomDataContext();
        var found = context.Lampes.SingleOrDefault(p => p.Id == Id);
        if (found != null)
        {
            found.Etat = lampe.Etat;
            found.Date = DateTime.Now;

            context.Lampes.Attach(found);
            context.Entry(found).State = EntityState.Modified;

            context.SaveChanges();
        }
    }



//Post request (works ok)

var lampe = $.param({'TypeObject': typeObject, 'SalleId': salleId});
        $http({
          method: "POST",
          url: "http://localhost:1770/api/Lampe",
          data: lampe,
          headers: {'Content-Type': 'application/x-www-form-urlencoded',}
        }).success(function (data) {
          alert("it works");
          }).error(function () {
          console.log(Error);
          alert('Error reading JSON file.');
        })
          .then(function (response) {
                  return response;
          });


//Put request  <= still have problem

var etat = $.param({'Etat' : false});
$http({
          method: "PUT",
          url: "http://localhost:1770/api/Lampe/1" ,
          data: etat,
          headers: {'Content-Type': 'application/x-www-form-urlencoded',}
        }).success(function (data) {
          alert("it works");
          }).error(function () {
          console.log(Error);
          alert('Error reading JSON file. - ');
        })
          .then(function (response) {
                  return response;
          });
&#13;
&#13;
&#13;

我做了什么?

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

我在这里找到了一个解决方案:http://ask.webatall.com/iis/18460_asp-net-web-api-put-delete-verbs-not-allowed-iis-8.html

一切都是关于允许PUT&amp;在web.config中删除

这可能有助于某人。