帖子未返回响应

问题描述 投票:0回答:1

我将Bottle用于后端,将Angular2用于前端。使用POST请求时,我想返回一个响应,但是由于某种原因,它不返回响应

Python代码:

@app.post("/api/post/new_post")
def hp_new_post():
    pd = json.loads(request.body.read().decode("utf-8"))
    try:
        cl.eduo.posts.insert_one(
            {
                "h": pd['h'],
                "d": pd['d'],
                "t": pd['t']
            }
        )
    except Exception:
        response.status = 500
    response.content_type = 'application/json'
    response.status = 200
    return response

角码:

var result = from(
  fetch(
    this.baseurl,
    {
      body: JSON.stringify(
        {
          "h": h,
          "d": des,
          "t": Date.now()
        }),
      headers: {
        'Content-Type': 'application/json',
      },
      method: 'POST',
      mode: 'no-cors'
    }
  )
).subscribe(
  {
    next(data) {
      console.log(data);
    },
    error(msg) {
      console.log(msg);
    }
  }
)

当我从请求获得console.log数据时,我得到:

body: null
bodyUsed: false
headers: Headers {  }   
ok: false    ​
redirected: false    ​
status: 0    ​
statusText: ""    ​
type: "opaque"    ​
url: ""
python-3.x angular rxjs bottle
1个回答
0
投票

我建议您使用HttpClient。为此,导入HttpClientModule,您的代码可能是:

constructor(private httpClient: HttpClient) {}

load() {
  this.http.post(this.baseurl, {
    "h": h,
    "d": des,
    "t": Date.now()
  }, { 
    observe: 'response',
    headers: new HttpHeaders({
      'Content-Type': 'application/json'
    }
  }).subscribe(response => {

    // do stuff with body
    // response.body

    // this will output headers received
    const keys = response.headers.keys();
    const headers = keys.map(key =>
    `${key}: ${response.headers.get(key)}`);

     console.table(headers);
  })
}

如果您不需要response详细信息,而只收到body

this.http.post<MyData>(this.baseurl, {
  "h": h,
  "d": des,
  "t": Date.now()
}).subscribe(data => {
  // do stuff with data of type MyData
  data.name...
}); 

关于Angular official docs的更多详细信息。

© www.soinside.com 2019 - 2024. All rights reserved.