首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Fetch API获取php内容,而不是发出请求

Fetch API获取php内容,而不是发出请求
EN

Stack Overflow用户
提问于 2018-06-22 07:17:45
回答 1查看 58关注 0票数 -1

我有一个React组件,它使用js fetch API从PHP文件中获取数据。问题是返回的promise包含PHP文件的内容,而不是我期望的JSON。当我尝试在promise中使用.json时,它会给我一个错误,我认为这是由获取PHP文件的内容引起的。

Uncaught (in promise) SyntaxError: Unexpected token < in JSON at position 0

我已经在两端都尝试了header('Content-Type') (js和php)。

下面是我的代码,如果你能给我一些帮助,我将不胜感激,谢谢。

import React, {Component} from 'react';

const API = '../api/rest/balances.php';

export class Balance extends Component {
    constructor(props) {
        super(props);

        this.state = {
            value: '0.00000000'
        }
    }

    componentDidMount() {
        fetch(API)
            .then(response => console.log(response.json()))
    }

    render() {
        return (
            <span className="balance">{this.state.value}</span>
        )
    }
}

PHP

<?php

use TradingBot\Connections\Factory;

header("Content-Type: application/json");

session_start();

$jsonReturn = new stdClass();

if (isset($_SESSION['usuario'])) {

    require_once $_SERVER['DOCUMENT_ROOT'] . DIRECTORY_SEPARATOR . 'vendor' . DIRECTORY_SEPARATOR . 'autoload.php';
    //Inclui os arquivos necessários
    //Cria um objeto conexão com o banco para o usuario
    $users = Factory::makeUsers();

    //Pega as credenciais da API
    $credentials = $users->GetCredentials($_SESSION['usuario']);

    //Cria a conexão com a Binance
    $api = new Binance\API($credentials->api_key, $credentials->api_secret);

    //Tenta adquirir o balanço da conta
    try {
        $balances = $api->balances();
    } catch (Exception $e) {
        $jsonReturn->error = $e->getMessage();
        exit();
    }

    //Filtra os resultados diferentes de zero
    $available = array_filter($balances, function ($valor) {
        return $valor['available'] > 0;
    });

    $jsonReturn->saldo = $available;
    echo json_encode($jsonReturn);
    exit();
} else {
    $jsonReturn->error = "user not defined at session";
    echo json_encode($jsonReturn);
    exit();
}
?>
EN

回答 1

Stack Overflow用户

发布于 2018-06-22 08:56:28

怎么样

componentDidMount() {
      fetch(API)
      .then(response => response.json())
      .then(response => console.log(response))
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50978663

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档