ruby-on-rails - 响应未转换为 JSON
问题描述
我正在尝试从 React 表单中获取信息并将其发布到我的 Rails 数据库中,但我收到一个错误"unexpected token '<' at position 0"
,这意味着我的响应仍然是 HTML 而不是 JSON。
这是我的代码:
export const createCar = car => {
return dispatch => {
return fetch(`${API_URL}/cars/create`, {
method: "POST",
headers: {
'Content-type': 'application/json'
},
body: JSON.stringify({ car: car })
})
.then(response => response.json())
.then(car => {
dispatch(addCar(car))
dispatch(resetCarForm())
})
.catch(error => console.log(error + 'createCar POST failed'))
}
}
它没有转换为 JSON 有什么原因吗?
此外,我似乎无法将调试器放入我的代码中,或者至少在这个函数中 - 我需要导入它还是什么?
解决方案
我认为您的服务器正在向您发送 HTML,然后您尝试将其解析为response.json()
在此块中使用 try/catch:
export const createCar = car => {
return dispatch => {
return fetch(`${API_URL}/cars/create`, {
method: "POST",
headers: {
'Content-type': 'application/json'
},
body: JSON.stringify({ car: car })
})
.then(response => {
try {
return response.json()
} catch(error) {
console.error(error);
}
})
.then(car => {
dispatch(addCar(car))
dispatch(resetCarForm())
})
.catch(error => console.log(error + 'createCar POST failed'))
}
推荐阅读
- docker - 在 HTTPS 上运行 docker 服务
- mysql - 当我们需要多次运行相同的查询并稍微改变条件时如何减少服务器上的负载
- python - 无法在 google cloud ml 上进行预测,而相同的模型正在本地机器上运行
- angularjs - 在我的水疗应用程序中出现“未捕获的错误:”
- javascript - 无法使极坐标图填满 Anychart 中的整个象限
- ios - CallDirectory - 如何为电话号码添加动态标签文本
- javascript - 我的图片上传模式没有出现在 php 中
- ios - 如何在 Swift3 iOS 中以特定时间在 AVPlayer 中播放视频
- html - 如何在 Angular 4 中创建表单向导
- python - 如何构建一个可以逐个对象从.json文件对象读取数据的flask api