39

我正在为自己编写一个非常好的 api 来使用 json 从我的游戏服务器获取一些 json 数据到我的网络空间,

但每次我使用 Angular 发送请求时,我都会收到:127.0.0.1 - - [20/Mar/2018 17:07:33] 代码 400,消息错误请求版本(“▒\x9c▒▒{▒'\x12 \x99▒▒▒\xadH\x00\x00\x14▒+▒/▒,▒0▒\x13▒\x14\x00/\x005\x00") 127.0.0.1 - - [20/Mar/2018 17:07 :33] "▒\x9dtTc▒\x93▒4▒M▒▒▒▒▒\x9c▒▒{▒'\x99▒▒▒▒▒H▒+▒/▒,▒0▒▒/5" HTTPStatus.BAD_REQUEST - 127.0.0.1 - - [20/Mar/2018 17:07:33] 代码 400,消息错误请求语法('\x16\x03\x01\x00▒\x01\x00\x00\x9d\x03\x03▒k, &▒▒ua\x8c\x82\x17\x05▒QwQ$▒0▒▒\x9f▒B1\x98\x19W▒▒▒▒\x00\x00\x14▒+▒/▒,▒0▒\x13▒\ x14\x00/\x005\x00') 127.0.0.1 - - [20/Mar/2018 17:07:33] "▒\x9d▒k,&▒▒ua\x8c\x82▒QwQ$▒0▒▒\ x9f▒B1\x98W▒▒▒▒▒+▒/▒,▒0▒▒/5" HTTPStatus.BAD_REQUEST - 127.0.0.1 - - [20/Mar/2018 17:07:33] 代码 400,消息错误请求语法('\x16\x03\x01\x00▒\x01\x00\x00▒\x03\x03)▒▒\x1e\xa0▒\t\r\x14g%▒▒\x17▒▒\x80\x8d}▒F▒▒ \x08U▒ġ▒▒\x06▒\x00\x00\x1c▒+▒/▒,▒0▒') g%▒▒▒▒\x80\x8d}▒F▒U▒ġ▒▒▒▒+▒/ ▒,▒0▒" HTTPStatus.BAD_REQUEST -

我的 API

from flask import Flask, jsonify
from flaskext.mysql import MySQL
from flask_cors import CORS, cross_origin

app = Flask(__name__)
CORS(app)
app.config['CORS_HEADERS'] = 'Content-Type'
cors = CORS(app, resources={r"/punishments": {"origins": "http://localhost:5000" "*"}})
mysql = MySQL()

# MySQL configurations
app.config['MYSQL_DATABASE_USER'] = 'test'
app.config['MYSQL_DATABASE_PASSWORD'] = 'Biologie1'
app.config['MYSQL_DATABASE_DB'] = 'test'
app.config['MYSQL_DATABASE_HOST'] = 'localhost'

mysql.init_app(app)

@app.route('/punishments', methods=['GET'])
@cross_origin(origin='localhost:5000',headers=['Content- Type','Authorization'])
def get():
    cur = mysql.connect().cursor()
    cur.execute('''select * from test.punishments''')
    r = [dict((cur.description[i][0], value)
              for i, value in enumerate(row)) for row in cur.fetchall()]
    return jsonify({'punishments' : r})

if __name__ == '__main__':
    app.run()

我的客户端功能

export class ApiUserService {

  private _postsURL = "https://localhost:5000/punishments";

  constructor(private http: HttpClient) {
  }

  getPosts(): Observable<Punishments[]> {

    let headers = new HttpHeaders();
    headers = headers.set('Content-Type', 'application/json; charset=utf-8');

    return this.http
      .get(this._postsURL,{
        headers: {'Content-Type':'application/json; charset=utf-8'}
      })
      .map((response: Response) => {
        return <Punishments[]>response.json();
      })
      .catch(this.handleError);
  }

  private handleError(error: Response) {
    return Observable.throw(error.statusText);
  }
}

4

4 回答 4

100

我和你有同样的错误。

我的烧瓶服务器安装在里面respberry-pi,我试图使用https://ip:5000.

问题是我使用https的是http.

当我将其更改为 时http://ip:5000,它起作用了。

于 2018-08-04T16:02:02.903 回答
14

我也面临同样的问题

仅使用 http 而不是 https :-

http://ip:portnumber
于 2019-08-08T17:48:13.607 回答
6

最近我也遇到了这个问题,问题来自我应用程序上的 SSL 配置。在我的.env中,我将其设置SSL_DISABLEFalse,然后将其更改为True.

更改SSL_DISABLE=FalseSSL_DISABLE=True

所以,这里的重点是:检查你的 URL,可能是这样的:https://127.0.0.1:5000,只需将其更改为http://127.0.0.1:5000.

希望它对将来也面临这个问题的人有所帮助。

于 2019-11-21T02:14:43.627 回答
0

就我而言,我试图调试在烧瓶上运行的 SocketIo 服务器。我试图访问wss://导致错误请求的服务器。更改它以ws://解决问题。

于 2021-05-21T16:25:33.703 回答