从角度前端调用删除。 错误显示:
Http failure response for http://devserver.us/MyApp/api/additive/3: 404 Not Found
角度客户端中的删除方法:
onDelete(additive: Additive) {
if (confirm("Are you sure you want to delete this additive?")) {
var id = additive.AdditiveId;
this._additiveService.delete(id).subscribe(result => {
var ad = result;
console.log(id + " has been deleted.");
this.refresh();
}, error => console.log(error));
}
}
附加服务:
private url = this.baseUrl + "api/additive/";
delete(id: number): Observable<Additive> {
return this.http.delete<Additive>(this.url+id, { withCredentials: true }).catch(this.handleError);
}
网页 API 控制器:
// DELETE api/<controller>/5
[HttpDelete("{id}")]
public IActionResult Delete(int id)
{
var deleteid = id;
return NoContent();
}
控制器继承自基本 api 控制器:
public class AdditiveController : BaseApiController
{
....
[Route("api/[controller]")]
public class BaseApiController : Controller
{
......
它在本地主机中工作正常,但在部署到开发服务器 (IIS 10( 后,所有 GET 都可以工作,但 DELETE 返回 404 未找到。 控制器的 URL 正确。
Web 配置允许所有动词:
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
</handlers>
我检查了标准输出日志和事件查看器,但它们不包含任何数据。
我怎么做 1.获取详细的错误消息或 2.解决这个问题?
原来问题出在服务器上的应用程序主机配置文件中。 删除必须明确允许,但事实并非如此。