Angular 7:发送发布请求给出错误405(不允许使用方法)

时间:2019-09-13 07:13:04

标签: angular http post http-status-code-405

我在Chrome上具有CORS扩展名,并且GET请求工作正常,但POST请求却没有。我收到错误“不允许的方法”,但由于有CORS扩展名,因此根据文档,POST请求应该可以工作。

我尝试使用另一个主题中提到的可选标头,但错误仍然存​​在。

我使用以下代码:

send(id){
    let list = JSON.stringify(this.array)
    this.http.post(this.url + this.id, list)
         .subscribe(),
            error => console.log("Error: ", error)
    )
} 

浏览器控制台中的错误消息是:

  

message:http://localhost:4000/的Http失败响应...
      名称:“ HttpErrorResponse”
      好的:false
      状态:405
      statusText:“不允许使用方法”

2 个答案:

答案 0 :(得分:1)

这可能与CORS无关。

  

405方法不允许

通常用于指示服务器(对于目标资源)不接受 HTTP方法(在您的情况下为POST)。看一下405的响应标题-它应该包含这样的内容

Allow: GET, POST, HEAD

有点可疑的事实是您将令牌附加到请求URL(假设使用this.currentUservalueToken进行身份验证)。 “通常”将为此使用Authorization HTTP 标头

尝试添加一个Authorization标头,如下所示:

send(ordernummer){
    let arr = JSON.stringify(this.localeArray)

    var headers = new Headers();
    headers.append('Authorization', 'Bearer AADDFFKKKLLLL');

    this.http.post(this.url+ ordernummer + "/" + this.id, arr, {
        headers: headers
      }).subscribe(data => console.log("Successful"),
            error => console.log("Error: ", error)
    )
}

答案 1 :(得分:0)

请确认您的变量名映射正确。