我在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:“不允许使用方法”
答案 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)
请确认您的变量名映射正确。