在位置0(重复)处出现JSON错误

时间:2018-09-28 02:03:15

标签: json reactjs

我在查看youtube ReactJS基于PHP令牌的Restful API用户身份验证时遇到了获取用户数据的问题,我按照他的教程进行操作,但出现此错误。

在我的控制台中,我收到此错误。

  

未捕获(承诺)SyntaxError:意外令牌<位于JSON中的位置0

我创建了UserData.js并将此UserData.js导入到我的登录页面

从“ ./UserData”导入{UserData};

    export function UserData(type, users_data) {
    let BaseUrl = 'http://localhost:8000/api/login_restful/';

    return new Promise((resolve, reject) => {

        fetch(BaseUrl+type, {
            method: 'post',
            body: JSON.stringify(users_data),
            headers: {
                'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content'),
                'Content-Type': 'application/json',
                'Accept': 'application/json'
            }
        })
        .then(function (response){
            return response.json();
        })
        .then((res) => {
            resolve(res)
        })
        .catch((error) => {
            reject(error);
        });
    })
}

这是我的按钮句柄提交:

handleSubmit(e) {
    e.preventDefault();
    UserData('login',this.state).then(response => {
        let result = response;
        console.log(result);
    })


}

在我的网络中:

Network Image

回复: Response Image

1 个答案:

答案 0 :(得分:0)

错误消息的措词与您运行JSON.parse('<...')时从Google Chrome浏览器获得的内容相对应。我相信响应主体实际上是HTML。

“ SyntaxError:JSON中位置0的意外令牌<”

我建议您添加到日志记录中。

        fetch(BaseUrl+type, {
        method: 'post',
        body: JSON.stringify(users_data),
        headers: {
            'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content'),
            'Content-Type': 'application/json',
            'Accept': 'application/json'
        }
    })
    .then(function (response){
        console.log('res', response);
        return response.json();
    })
    .then((res) => {
        resolve(res)
    })
    .catch((error) => {
        reject(error);
    });

查看实际的xhr(XMLHttpRequest)属性以了解有关响应的更多信息。尝试添加console.warn(xhr.responseText),您很可能会看到正在接收的HTML。