Http failure during parsing for http://localhost:4200/api/login,Python 内置函数repr() 之坑

问题描述:
1、前端 angular7
2、后台 Python2.7 + django
3、报错
在这里插入图片描述
在这里插入图片描述
数据也返回了,就是接收不到,作为一个Python菜鸡,各种调试
4、请求

import {Injectable} from '@angular/core';
import 'rxjs/add/operator/catch';
import 'rxjs/add/operator/toPromise';
import {beforeUrl} from '../common/public-data';
import {HttpClient, HttpHeaders} from '@angular/common/http';
import {catchError, tap} from 'rxjs/operators';
import {Observable} from 'rxjs/Observable';
//登录
  private loginUrl = 'api/login';
  login(userToken: string): Observable<any> {
    let httpOptions: any;
    httpOptions = {
      headers: new HttpHeaders({
        'Content-Type': 'application/json',
        'Authorization': userToken
      })
    };
    let url = this.loginUrl;
    return this.http
      .get(url,httpOptions)
      .pipe(
        tap((res: any) => res),
        catchError((error: Response | any) => {
          return Promise.reject(error);
        })
      );
  }

5、原因
Python 内置函数repr()的锅
repr() 函数将对象转化为供解释器读取的形式。【不知道是否和javascript里的JSON.stringify()同样用法】
6、使用json.dumps()解决了此问题

Python代码
# -*- coding: utf-8 -*-

from django.http import HttpResponse
from django.shortcuts import render_to_response
import json
def login(request):
    request.encoding = 'utf-8'
    headers = {'Content-Type': 'application/json'}
        message =json.dumps(
        	{"success": 200, "name": "shangyc", "password": "abc-123"}
        )
    return HttpResponse(message, content_type="application/json")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值