FLASK request.json 无法使用 React 负载

FLASK request.json not working with React payload

我有一个 flask 路由,可以根据半径查询我的数据库中的位置和服务。测试和使用 POSTMAN。

@bp.route('/provider-locations/<int:radius>', methods=['GET'])
def get_locations_from_radius(radius):
    user_latitude = request.json['lat']
    user_longitude = request.json['lng']

    my_obj = {}
    my_obj_container = []

    locations = db_session.query(ProviderLocation).filter(\
    func.acos(func.sin(func.radians(user_latitude)) \
        * func.sin(func.radians(ProviderLocation.latitude)) + \
            func.cos(func.radians(user_latitude)) * \
                func.cos(func.radians(ProviderLocation.latitude)) * \
                    func.cos(func.radians(ProviderLocation.longitude) - \
                        (func.radians(user_longitude)))) * 6371 <= radius)

    for location in locations:
        services = db_session.query(ProviderService).select_from(ProviderService).join(\
            ServiceLocationLink).filter(ServiceLocationLink.location_id == location.id).all()
        
        my_obj = provider_location_list_schema.dump(location)
        my_obj['services'] = [provider_service_list_schema.dump(service) for service in services]
        my_obj_container.append(my_obj)

    return jsonify(my_obj_container)

我的错误在于试图将此请求传递给我的客户端 (React) 的预期参数。我不断收到 400 响应。

export async function getLocationServicesByRadius(radius, user_address) {
    try {
        const body = {
            lat: user_address.lat,
            lng: user_address.lng
        }
        return await awsApiRequest({
            method: 'GET',
            path: `/provider-locations/${radius}`,
            params: {
                body: body
            },
        });
    } catch (err) {
        console.log(err.message)
    }
}
  const fetchLocationServices = async () => {
    const userAddress = {
      lat: 43.829640,
      lng: -79.470310
    }
    const { data, success, errorMessage } = await getLocationServicesByRadius(userDistance, userAddress)
    if (success) {
      console.log('RADIUS =>', data)
    } else {
      console.log(errorMessage)
    }
  }

我一定是遗漏了什么地方,但无法弄清楚为什么请求返回 400。

客户端的正文看起来是这样的:

{
   lat: 43.82964
   lng: -79.47031
}

在 flask 中 request.json 用于访问 POST 请求体,对于 GET 请求使用 request.args.