同构提取(REDUX / nodeJs) - 使用用户名/密码

时间:2016-11-15 20:33:11

标签: node.js post redux isomorphic-fetch-api

我使用以下代码从API获取数据,它工作正常。我有另一个安全的API,需要用户名/密码来访问内容,我不知道在使用同构提取模块时如何传递凭据。有人可以帮忙吗?

我正在使用此模块:https://www.npmjs.com/package/isomorphic-fetch

我需要传递用户名和密码,如下所示(Sample curl命令)

curl -u admin:hello123 http://test:8765/select?q=*

代码:

fetch(
    url
).then(function (response) {
    if (response.status != 200) {
        dispatch(setError(response.status + '===>' + response.statusText + '===>' + response.url))
    }
    return response.json();
}).then(function (json) {
    dispatch(setData(json, q))
}).catch(function(err){
});

1 个答案:

答案 0 :(得分:2)

大多数API都会使用POST请求进行身份验证。他们期望收到要验证的数据(用户/密码)。此外,它们通常需要标题中的额外信息,例如指定要发送的数据(用户/密码数据)的格式(例如application / json)。你没有通过任何这些。请查看下面可能有效的内容,但这完全取决于您所期望的API所期望的内容(查看其文档)。

fetch(url, {
    method: 'POST',
    headers: {
        // Check what headers the API needs. A couple of usuals right below
        'Accept': 'application/json',
        'Content-Type': 'application/json'
    },
    body: JSON.stringify({
        // Validation data coming from a form usually
        email: email,
        password: password
    } 
}).then(function (response) {
    if (response.status != 200) {
        dispatch(setError(response.status + '===>' + response.statusText + '===>' + response.url))
    }
    return response.json();
}).then(function (json) {
    dispatch(setData(json, q))
}).catch(function(err){
    console.log(err);
};