我设法将我的应用程序迁移到Webpack4(从3),但是我遇到了一个奇怪的问题。 API response.data字段已从对象更改为字符串(JSON)。我可能可以只运行JSON.parse(response.data),但我宁愿找出原因并加以解决
我正在使用redux-saga和axios。下面的Saga代码在迁移中没有更改。我尽可能少地更改了应用程序以进行编译。 Axios使用的是同一版本
function login(payload) {
const url = __API__ + 'xx/login'
var params = new URLSearchParams()
for (var property in payload) {
if (payload.hasOwnProperty(property)) {
params.append(property, payload[property])
}
}
return axios.post(url, params, { headers: { crossDomain: true, 'content-type': 'application/x-www-form-urlencoded;charset=utf-8' } })
.then(response => response)
.catch(err => { throw err })
}
function* loginSaga({ payload }) {
try {
const response = yield call(login, payload)
const { data } = response
yield put(Actions.loginSucceded(data))
}
catch (err) {
if (err.hasOwnProperty("message")) {
yield put(Actions.loginFailed(err.message))
return
}
yield put(Actions.loginFailed("Unknown network error"))
}
}
我希望API响应是一个对象,而response.data也是一个对象。但是迁移后的response.data现在是一个(json的)字符串