响应未转换为JSON

时间:2019-02-13 17:34:21

标签: ruby-on-rails json reactjs

我正在尝试从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的原因?

此外,我似乎无法将调试器放到我的代码中,或者至少在此功能中-我需要导入它吗?

1 个答案:

答案 0 :(得分:1)

我认为您的服务器向您发送了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'))
}