django - Redux-Saga 将 header 传递给 axios.post 调用

标签 django reactjs jwt redux-saga

我在使用 redux-saga 时遇到了一些困难。我有以下传奇:

createPostSaga:

function* createPostSaga(action) {
  const token = yield select(selectToken);
  const headerParams = {
    Authorization: `JWT ${token}`
  };
  console.log(token, headerParams);
  try {
    yield call(axios.post, "/posts/", action.payload, headerParams);
    yield call(getPosts());
  } catch (error) {
    console.log(error);
  }
}

如您所见,我正在选择我的 token ,并将其放入具有键 Authorization 和值 JWT ${token} 的对象中,我的 API 仍在响应 401 unauthorized,但这一定是这个调用的问题,因为我可以在 Postman 中复制这个调用并且它运行良好:

Postman Request

有没有人看到我做错了什么?

最佳答案

尝试创建一个获取函数并在 .call 中使用它。

function* createPostSaga(action) {
  const token = yield select(selectToken);
  const headerParams = {
    "Authorization": `JWT ${token}`
  };

  const apiCall = () => {
    return axios.post('/posts', {
      action.payload // only if not an object. Otherwise don't use outer {},
    },
    headerParams: headerParams,
   ).then(response => response.data)
    .catch(err => {
      throw err;
    });
  }

  console.log(token, headerParams);
  try {
    yield call(apiCall);
    yield call(getPosts());
  } catch (error) {
    console.log(error);
  }
}

关于django - Redux-Saga 将 header 传递给 axios.post 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53241315/

相关文章:

django - SSL 安装后 Gunicorn 工作线程超时(Django、Nginx)

sql - Django ORM : Getting rows based on max value of a column

python - Django "extra"查询

javascript - 如何从 Firebase 存储获取 React.js 的异步图像数据?

android - 如何使用 react native 集市显示来电

javascript - 第一页之后分页表的连续索引

jwt - 在验证之前使用 JWT 有效负载

python - View 中的 Django 选择引用

security - 通过电子邮件在查询字符串中发送 JWT 安全吗?

firebase - 900个字符的Firebase Auth idToken大小正常吗?