我有一个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();
}
?>
发布于 2018-06-22 08:56:28
怎么样
componentDidMount() {
fetch(API)
.then(response => response.json())
.then(response => console.log(response))
}
https://stackoverflow.com/questions/50978663
复制相似问题