我使用角度js请求放置到Web API,但我得到了404响应。虽然上下班很棒。可能是什么原因。我瞪着眼睛,人们在谈论webdev我几乎所有的东西都是愚蠢的404。
请求者和API都位于同一个域http://locathost/api
和http://localhost/app
服务器端代码
// PUT: api/Projects/5
[ResponseType(typeof(void))]
public async Task<IHttpActionResult> PutProject(int id, Project project)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
if (id != project.Id)
{
return BadRequest();
}
db.Entry(project).State = EntityState.Modified;
try
{
await db.SaveChangesAsync();
}
catch (DbUpdateConcurrencyException)
{
if (!ProjectExists(id))
{
return NotFound();
}
else
{
throw;
}
}
return StatusCode(HttpStatusCode.NoContent);
}
AngularJs服务
mediaApp.factory('Api', function ($resource) {
var data = $resource('http://localhost/api/projects/:id', {id: '@id'}, {
update:{
method:'PUT'
}
});
return data;
});
angularjs控制器调用它
Api.update({ id: 9}, {id:9,projectName: 'test', number: 'test', dateTime: 'test', inspector: 'test', neighborhood: 'test', field1: 'test', field2: 'test' });
和我得到的错误
Remote Address:127.0.0.1:8888
Request URL:http://localhost/api/projects/9
Request Method:PUT
Status Code:404 Not Found
Request Headersview source
Accept:application/json, text/plain, */*
Accept-Encoding:gzip, deflate, sdch
Accept-Language:en-US,en;q=0.8
Content-Length:136
Content-Type:application/json;charset=UTF-8
Host:localhost
Origin:http://localhost
Proxy-Connection:keep-alive
Referer:http://localhost/App/
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.94 Safari/537.36
Request Payloadview source
{id: 9, projectName: "test", number: "test", dateTime: "test", inspector: "test", neighborhood: "test",…}
dateTime: "test"
field1: "test"
field2: "test"
id: 9
inspector: "test"
neighborhood: "test"
number: "test"
projectName: "test"
Response Headersview parsed
HTTP/1.1 404 Not Found
Cache-Control: private
Content-Type: text/html; charset=utf-8
Server: Microsoft-IIS/7.5
X-Powered-By: ASP.NET
Date: Sat, 04 Apr 2015 05:03:54 GMT
Content-Length: 5270
答案 0 :(得分:0)
看一下这两篇文章
如果此帖子无法访问,您需要检查IIS处理程序映射以确保所有动词都允许使用模块: