Angular Http Options和Delete发送两个请求?

时间:2018-05-28 12:25:03

标签: angular asp.net-web-api2

我尝试向服务器发送请求以根据ID删除对象。我使用Web Api作为后端。

removable: string = 'http://localhost:49579/api/resource/remove/28';

     this._http.options(removable,{headers}).subscribe((value)=>console.log("success"),(error)=>console.log(error));

的WebAPI

    [HttpOptions]
    [Route("api/resource/remove/{id}")]
    public IHttpActionResult Delete([FromUri] int id)
    {

        if (MovieRepository.Remove(id))
        {
            return Ok("Movie was removed");
        }
        else
        {
            return BadRequest("Movie was not removed");
        }
    }
}

我收到两个请求,一个是好的,另一个是坏请求。我也尝试使用Http DELETE,但它产生相同的效果。我做错了什么?

2 个答案:

答案 0 :(得分:0)

尝试更改为实际的DELETE请求:

this._http.delete(removable,{headers}).subscribe((value)=>console.log("success"),(error)=>console.log(error));

不确定为什么要手动调用options请求,Angular已为您发出的每个请求执行此操作。

答案 1 :(得分:0)

之前我遇到过同样的问题,这是与CORS相关的预期行为

然后你会在服务器端有两个请求但前端只有一个回调响应,所以我建议在服务器端和前端验证第一个 OPTION 请求你会只获得一个回调响应

reference