角度发布请求期望获得GET

时间:2018-09-12 15:19:14

标签: angular typescript http post angular6

我有一个无法处理的简单函数,这是ts代码。

update(accNode: CcAccNode): Observable<any> {
  return this.http.post<CcAccNode>('/api/core_component/acc/' + accNode.accId, {
    'objectClassTerm': accNode.objectClassTerm,
    'state': accNode.state,
    'den': accNode.den,
    'definition': accNode.definition,
    'is_abstract': accNode.abstracted,
    'is_deprecated': accNode.deprecated,
  });
}

日志给了我这种回应:

Request URL: http://localhost:4200/api/core_component/acc/8150
Request Method: POST
Status Code: 405 Method Not Allowed
Remote Address: 127.0.0.1:4200
Referrer Policy: no-referrer-when-downgrade

Access-Control-Allow-Origin: *
allow: GET

如何绕开它?谢谢!

3 个答案:

答案 0 :(得分:3)

您正在发出POST,但是您的服务需要一个GET请求。 您需要像这样的东西

update(accNode: CcAccNode): Observable<any> {
  return this.http.get<CcAccNode>('/api/core_component/acc/' + accNode.accId +
    '?objectClassTerm=' + accNode.objectClassTerm +
    'state=' +  accNode.state +
    'den=' +  accNode.den +
    'definition=' +  accNode.definition +
    'is_abstract=' +  accNode.abstracted +
    'is_deprecated=' +  accNode.deprecated
  );
}

答案 1 :(得分:2)

我不太确定,但是我认为您没有正确添加网址。似乎是在发布到自己的前端服务器上:

http://localhost:4200/api/core_component/acc/8150´

,我不知道这是否是您想要的。

return this.http.post<CcAccNode>('/api/core_component/acc/' + accNode.accId, {...})

也许您应该替换

'/api/core_component/acc/'

yourBackendBaseUrl + '/api/core_component/acc/'

答案 2 :(得分:1)

感谢您的所有答复,后端有一个SQL错字,我以为它可能位于前端,但是正如Hjbello告诉我的,这是一个后端问题! 再次感谢你们! :)