Javascript React Redux Fetch action returning“返回”;415(不支持的介质类型)";及;401(未经授权)“;
我有一个操作,它创建一个fetch来将客户端发布回API 我在“headers”中发送了一个JWT,它本身并不是问题,因为它也用于一个运行良好的GET中。。。但不是在岗位上。以下是我的行动: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 =
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}}
。