Webpack4迁移后,axios响应现在为字符串(而不是对象)

时间:2019-04-02 16:58:58

标签: javascript axios redux-saga

我设法将我的应用程序迁移到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的)字符串

0 个答案:

没有答案