python - Uncaught (in promise) SyntaxError: Unexpected end of JSON input Promise.then (async) - React
问题描述
我正在尝试使用 fetch 将我的 get 请求中的值显示到客户端。但是,我收到此语法错误:
Uncaught (in promise) SyntaxError: Unexpected token < in JSON at position 0
我知道问题是由于它没有返回 JSON 对象,但是我创建了一个 JSON 对象,以便从我的烧瓶路由接收它。所以我不太确定是什么导致了这个错误。
应用程序.py
from flask import Flask, request, jsonify
from flask_cors import CORS, cross_origin
app = Flask(__name__)
CORS(app)
@app.route('/api', methods=['GET','POST'])
def api():
if request.method == 'POST':
username = request.form['username']
email = request.form['email']
occupation = request.form['occupation']
print('Username: ' + username + ' Email: ' + email + ' occupation: ' + occupation)
print('Json ', (jsonify(username)))
return {"username" : username}
else:
return {"username" : username}
应用程序.js
import React, {useState, useEffect} from 'react';
import Form from './components/Form'
import './App.css';
function App() {
const [initialData, setInitialData] = useState ([{}])
useEffect(()=> {
fetch('/api').then(
response => response.json()
).then(data => console.log(data))
});
return (
<div className="App">
<Form/>
</div>
);
}
export default App;
解决方案
将 Content-Type 和 Accept 标头添加到您的 fetch 中,示例如下。
fetch('/api', {
headers : {
'Content-Type': 'application/json',
'Accept': 'application/json'
}).then(
response => response.json()
).then(data => console.log(data))
推荐阅读
- javascript - 将函数绑定到对象映射属性并使用箭头函数保留“this”
- python - 模块“google.cloud.speech_v1.types”没有“RecognitionAudio”成员,模块“google.cloud.speech_v1.types”没有“RecognitionConfig”成员
- c++ - 验证用户输入和整数 C++
- mongodb - 使用 $exists 和 $regex 匹配子文档的键 - MongoDb
- r - 从源代码安装 R 包时如何更改使用的 C++ 版本编译器?
- javascript - 在 fetch 调用之前运行函数?
- java - MyBatis 和 jOOQ 的不同用例和技术差异
- ios - MDCOverlayWindow 没有激活或显示任何东西
- c# - 路径不是在 sharepoint 上下载 .xls 文件的合法形式
- postgresql - 从 EC2 实例连接到 RDS 时出现问题:服务器是否在主机上运行/接受端口 5432 上的 TCP/IP 连接?