Python 使用JSON制作Angular2帖子

Python 使用JSON制作Angular2帖子,python,json,angular,flask,angular2-services,Python,Json,Angular,Flask,Angular2 Services,我有一个简单的烧瓶后端的API,并希望作出一个职位。 我不确定错误是-我收到了错误消息,但不确定是角度问题还是烧瓶问题。我尝试了请求。在我的烧瓶中获取_json(),然后 {BadRequest}400 BadRequest:浏览器(或代理)发送的请求 此服务器无法理解 Angular2呼叫我的服务。ts: import { Injectable } from '@angular/core'; import { Http, Response } from '@angular/http'; imp

我有一个简单的烧瓶后端的API,并希望作出一个职位。 我不确定错误是-我收到了错误消息,但不确定是角度问题还是烧瓶问题。我尝试了请求。在我的烧瓶中获取_json(),然后

{BadRequest}400 BadRequest:浏览器(或代理)发送的请求 此服务器无法理解

Angular2呼叫我的服务。ts:

import { Injectable } from '@angular/core';
import { Http, Response } from '@angular/http';
import { Observable} from 'rxjs/Rx';
import { Headers } from '@angular/http';
import 'rxjs/add/operator/map';
import 'rxjs/add/operator/catch';


@Injectable()
export class NicksService {

  private headers = new Headers({'Content-Type': 'application/json'});
  nickUrl: string = "http://localhost:5000/nick";
  constructor(private http: Http) { }

  // Send the nick to the server to see if it is valid
  checkNickValidity(nickName: string): Observable<string>{

    return  this.http.post(this.nickUrl, JSON.stringify({nick: nickName}), {headers: this.headers})
    .map(this.extractData)
    .catch(this.handleError)
  }

我认为你的申请在两方面都有问题

客户端:

Angular的方法接收body参数中的任何对象,这意味着您不需要将其字符串化

例如:

服务器端:

一旦客户机的请求正确地到达服务器,您就无法正确地获取数据

您需要做的是这样的事情:

from flask import jsonify

(... your code ...)

    data = request.json
    nick = data.get('nick')
    if nick == 'AmandaPanda':
        return jsonify({'message': 'good'}), 200
    else:
        return jsonify({'message': 'no nick found'}), 400
这里,json数据作为字典存储在变量
data
中。随后,从所述词典的
尼克
键中获得尼克


最后,以json形式返回客户机是一种更好的做法。这就是方法的用途。请注意响应后附加的200和400,用于向客户端指示请求是否被正确接受(200)或是错误的请求(400)。

400通常意味着服务器无法接受您的请求,因为请求的形式不是预期的。它可能包括内容类型、请求参数、url、标题等。您需要检查服务器以确定问题。
this.http.post(this.nickUrl, {nick: nickName}, {headers: this.headers})
from flask import jsonify

(... your code ...)

    data = request.json
    nick = data.get('nick')
    if nick == 'AmandaPanda':
        return jsonify({'message': 'good'}), 200
    else:
        return jsonify({'message': 'no nick found'}), 400