Ruby on rails 响应不是';t转换为JSON
我试图从React表单中获取信息并将其发布到我的Rails数据库中,但我得到一个错误Ruby on rails 响应不是';t转换为JSON,ruby-on-rails,json,reactjs,Ruby On Rails,Json,Reactjs,我试图从React表单中获取信息并将其发布到我的Rails数据库中,但我得到一个错误“意外标记”,我认为您的服务器正在向您发送HTML,然后您正在尝试在response.json()中解析它。 在此块中使用try/catch: export const createCar = car => { return dispatch => { return fetch(`${API_URL}/cars/create`, { method: "POST",
“意外标记”,我认为您的服务器正在向您发送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'))
}
这是捕获错误还是渲染失败?捕获错误从post api响应中预期的响应格式是什么。请添加更多详细信息。如果您也发布了您的rails操作,会更好…谢谢,但它仍然会记录日志(错误+“createCar post failed”),我不知道为什么它跳过了Try/catch。你能试着把帖子放到postman中吗?我肯定你的服务器是这里的问题。看起来我没有按正确的路线发帖:`“异常”:#“`但是当我运行rake路由时,我有一个api/cars#create路由。有什么想法吗?尝试发布到/api/cars
@hashrocket发布到api/cars
会收到400个错误请求,参数丢失或为空:cars
。它可能是名称空间,或者我在控制器中调用了错误的参数
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'))
}