Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 响应不是';t转换为JSON_Ruby On Rails_Json_Reactjs - Fatal编程技术网

Ruby on rails 响应不是';t转换为JSON

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",

我试图从React表单中获取信息并将其发布到我的Rails数据库中,但我得到一个错误
“意外标记”,我认为您的服务器正在向您发送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'))
}