我试图从Express中的index.js获取我的React应用程序中的json对象,但是当它加载时我得到了#34; Unhandled Rejection(SyntaxError):位于0的JSON中的意外标记P&# 34 ;.
当我使用/users.js作为路线时,我成功取出。
(index.js)
var express = require('express');
var router = express.Router();
router.get('/', function(req, res, next) {
vitamins: [
{
name: "Vitamin B2"
}
],
minerals: [
{
name: "Zinc"
}
]});
});
(React app)
componentDidMount() {
fetch('/index')
.then(res => res.json())
.then(micros => {
this.setState({
micros: micros.vitamins
});
})
}
同样,当我使用相同的代码从/users.js获取时,它工作正常。相反,我只是抓取(' / users')。我也尝试过提取(' /'),但我得到了#34;意外的令牌<在JSON的位置0和#34;。
答案 0 :(得分:1)
错误,意外的令牌<在位置0的JSON中,由于您的响应不是真正的json而是HTML,类似于404 html响应或500响应。 建议不要使用' /'进行直接服务器呼叫。这主要用于加载通常返回HTML的整个应用程序。 您应该为您提到的端点维护单独的映射'用户'然后从React fetch中调用它。 在第一次获得响应时添加一些额外的控制台日志或调试,您将能够找出服务器返回的实际响应
答案 1 :(得分:0)
我认为你需要这样做:
fetch('/')
不
fetch('/index')
。