如何在授权标头中使用提取

时间:2018-07-11 10:42:57

标签: javascript reactjs django-rest-framework fetch

我对使用访存还很陌生,我不知道我是否在做正确的事,因为它与POST配合得很好。如果我使用普通的提取方法,而不是我做的功能,则服务器将以数据作为响应。但是,如果使用此功能,数据将变得不确定。关于如何解决此问题的任何想法?

network_requests.js

export const getData = (url, data) => {
    return fetch(url, {
        body: JSON.stringify(data), // must match 'Content-Type' header
        cache: 'no-cache', // *default, no-cache, reload, force-cache, only-if-cached
        credentials: 'include', // include, same-origin, *omit
        headers: {
            'user-agent': 'Mozilla/4.0 MDN Example',
            'content-type': 'application/json',
            'Authorization': 'Token '+ localStorage.token
        },
        method: 'GET', // *GET, POST, PUT, DELETE, etc.
        mode: 'cors', // no-cors, cors, *same-origin
        redirect: 'follow', // manual, *follow, error
        referrer: 'no-referrer', // *client, no-referrer
    })
        .then(response => response.json()); // parses response to JSON
};

示例用法:(无效)

fetchDrivers() {
    return getData('/members/drivers').then(data => {
        if (!data["error"]) {
            //for each entry in drivers data, append data as a dictionary in tableData
            //ant tables accept values {"key": value, "column_name" : "value" } format
            //I cant just pass the raw array since its a collection of objects
            const tableData = [];
            //append drivers with their ids as key
            data["drivers"].forEach(item => tableData.push({
                "key": item.id,
                "name": item.name
            }));
            this.setState({drivers: tableData});
        } else {
            console.log(data["error"]);
        }
    });
}

0 个答案:

没有答案