我有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;
我做了什么?
感谢您的帮助。
答案 0 :(得分:0)
我在这里找到了一个解决方案:http://ask.webatall.com/iis/18460_asp-net-web-api-put-delete-verbs-not-allowed-iis-8.html
一切都是关于允许PUT&amp;在web.config中删除
这可能有助于某人。