【问题标题】:why string is changed to % when I send with post to my server为什么当我将帖子发送到我的服务器时字符串更改为 %
【发布时间】:2021-09-21 12:16:05
【问题描述】:

我要发送的字符串是

let param={"value":"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2w"};
this.postHttp("http://202.31.237.173/ionic",param);

postHttp(url: string, param: any = {}) {
    param = this.jsonToURLEncoded(param);
    console.log(param);
    let headers = new Headers({ 'Content-Type' : 'application/x-www-form-urlencoded', 'Accept' : 'application/json' });
    //let headers = new Headers({ 'Content-Type' : 'application/json' });
    let options = new RequestOptions({ headers: headers });

    
    //return this.http.post(url, param, options).map((res: Response) => res.json() );
    this.http.post(url, param, options).subscribe((o)=>{
      console.log("subscribe in post http")
    })
   
}

但是当我在我的服务器中收到它时。 字符串值显示为

'value=data%3Aimage%2Fjpeg%3Bbase64%2C%2F9j%2F4AAQSkZJRgABAQAAAQABAAD%2F2w'

它将 / 更改为 % ...etc...为什么会发生以及如何解决?

接收的服务器代码如下

@app.route("/ionic", methods=['POST']) 
def predictionic():
    
    data = request.get_data()
    print(data);

【问题讨论】:

  • / 更改为 %2F,这是 URL 编码,它的发生是因为 param = this.jsonToURLEncoded(param);

标签: python json flask ionic-framework base64


【解决方案1】:

很确定这是因为您使用的是 jsonToURLEncoded() 函数。您不需要这样做,因为您正在编码的参数实际上是 json 正文。 json 主体是 json,而不是 url 的一部分。 您在“参数”中使用的值很好,可以完全按照您定义的方式发送和接收,无需任何进一步的编码。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-01-13
    • 2016-07-06
    • 2023-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-22
    相关资源
    最近更新 更多