Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/24.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
Javascript React Redux Fetch action returning“返回”;415(不支持的介质类型)";及;401(未经授权)“;_Javascript_Reactjs_React Redux_Fetch - Fatal编程技术网

Javascript React Redux Fetch action returning“返回”;415(不支持的介质类型)";及;401(未经授权)“;

Javascript React Redux Fetch action returning“返回”;415(不支持的介质类型)";及;401(未经授权)“;,javascript,reactjs,react-redux,fetch,Javascript,Reactjs,React Redux,Fetch,我有一个操作,它创建一个fetch来将客户端发布回API 我在“headers”中发送了一个JWT,它本身并不是问题,因为它也用于一个运行良好的GET中。。。但不是在岗位上。以下是我的行动: export const createNewClient = (payload) => (dispatch, getState) => { dispatch({ type: REQUEST_CREATE_NEW_CLIENT, payload }) const jwt =

我有一个操作,它创建一个fetch来将客户端发布回API

我在“headers”中发送了一个JWT,它本身并不是问题,因为它也用于一个运行良好的GET中。。。但不是在岗位上。以下是我的行动:

export const createNewClient = (payload) =>
  (dispatch, getState) => {
    dispatch({ type: REQUEST_CREATE_NEW_CLIENT, payload })

    const jwt = getJwt()
    if (!jwt) {
      throw new Error('No JWT present')
    }
    const token = jwt.access_token
    const headers = new Headers({
      'Authorization': `bearer ${token}`
    })
    debugger
    const task = fetch('/api/client/create', {
      method: 'POST',
      body: JSON.stringify(payload),
      headers,
    })
      .then(handleErrors)
      .then(response => response.json())
      .then(data => {
        dispatch({ type: RECEIVE_CREATE_NEW_CLIENT, payload: data })

        dispatch({
          type: SAVE_MESSAGE, payload: {
            message: "Successfully saved client",
            type: 'success'
          }
        })
      })
      .catch(error => {
        //clearJwt()
        dispatch({ type: ERROR_CREATE_NEW_CLIENT, payload: error.message })

        dispatch({ type: SAVE_MESSAGE, payload: { message: error.message, type: 'error' } })
      })
    addTask(task)
    return task
  }
我试着修改标题以包含UTF-8,就像这样

  headers: {
    'Content-Type': 'application/json;charset=UTF-8'
  },
然而,这只是给了我401未经授权,这意味着通过使用这是正确的媒体类型,但现在不会被接受

同样的JWT在Fetch-GET命令中工作得很好,所以JWT本身不是问题所在——我相信这可能是我编写“Fetch”的方式

现在我在《邮递员》中也做了同样的事情,我通过了,但不是通过这次取回

我错过了什么或者没有正确地为获取帖子构建结构,以便JWT被接受等等


如果其工作原理与提供的图像相同

那么下面的方法就行了

fetch('/api/client/create', {
  method: 'POST',
  body: JSON.stringify(payload),
  headers: {
    'Authorization': `bearer ${token}`,
    'Content-Type': 'application/json',
  }
})

提供给
fetch
的头应该是键值对。试试这个-
标题:{method:'POST',body:JSON.stringify(有效载荷),'Authorization':'Bearer${token}}