var formData = new FormData(loginRequestObject);
formData.append('userName', loginRequestObject.username);
formData.append('password', loginRequestObject.password);
formData.append('mobile', loginRequestObject.mobile);
formData.append('deviceid', deviceInfo.getDeviceId())
这是我正在制作的请求 -
和身体部位
try{
const response = yield call(fetch, Url, {
method : 'POST',
headers : {
'Accept': 'application/json, application/xml, text/plain, text/html, *.*',
'Content-Type' :'multipart/form-data, application/x-www-form-urlencoded; charset=utf-8'
},
body : formData
})
if(response.ok) {
const jsonResponse = yield response.text()
yield put(LoginActions.loginSuccess(jsonResponse))
} else {
const jsonResponse = yield response.text();
yield put(LoginActions.loginFailure(jsonResponse))
}
我发这个请求发布数据但是我无法做到,这是什么原因?
答案 0 :(得分:0)
首先,没有promise function
处理您的POST
请求的响应。你用这个实现的代码得到了什么错误?当您不在多个部分发送数据时,为什么使用multipart/form-data
?从您的代码中看,您发送的图片数据看起来并不像multipart
。
您的问题没有提供足够的详细信息来提供任何具体答案,请详细说明您所遇到的错误。
答案 1 :(得分:0)
我认为您应该将fetch函数与另一个函数包装在一起,这是一个适合您的演示
const fetchFunc = ({ url, options }) => {
return fetch(url, options);
}
const response = yield call(fetchFunc, {
url: Url,
options {
method : 'POST',
headers : {
'Accept': 'application/json, application/xml, text/plain, text/html, *.*',
'Content-Type' :'multipart/form-data, application/x-www-form-urlencoded;charset=utf-8',
},
body : formData
}
});
if(response.ok) {
const jsonResponse = yield response.text()
yield put(LoginActions.loginSuccess(jsonResponse))
} else {
const jsonResponse = yield response.text();
yield put(LoginActions.loginFailure(jsonResponse))
}
答案 2 :(得分:-2)
我刚删除了Content-Type,但它已经有效了。