我有一个操作,可以创建一个提取,将客户端POST回API。
我在"标题中发送了一个JWT"这本身不是问题,因为它也在GET中使用,工作得很好......但不是在POST中。这是我的行动:
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 Unauthorized,这意味着使用它是正确的媒体类型,但现在不会被接受。
同样的JWT在Fetch GET命令中工作正常,所以JWT本身不是问题 - 我相信它可能就像我写#34; Fetch"。
现在我在Postman做了同样的事情,但我没有通过这个Fetch ...
我错过或错误构建了一个Fetch POST,以便接受JWT等
答案 0 :(得分:5)
如果它在提供的图像中起作用
然后以下工作
return this