【问题标题】:Why doesn't JSON.stringify() stringify my object as intended?为什么 JSON.stringify() 不按预期对我的对象进行字符串化?
【发布时间】:2018-05-06 19:57:47
【问题描述】:

我正在从 react-native 发出 fetch 请求。 为什么 A 会正确发送正文数据,但 B 会返回未定义?

    let usrn = 'ususus'
    lew pwrd = 'pwpwpw'

    let bodyData = {
        'u': usrn,
        'p': pwrd,
    }

具体是JSON.stringify()的正文数据?

=> A
    return fetch(url, {
            method: "POST",
            headers: headers,
            body: JSON.stringify({
                'u': usrn,    // <= can return this value on server
                'p': pwrd,    // <= can return this value on server
            })
        })

=> B
    return fetch(url, {
            method: "POST",
            headers: headers,
            body: JSON.stringify({ bodyData }) // <= returns undefined on server
        })

【问题讨论】:

    标签: reactjs react-native stringify


    【解决方案1】:

    bodyData 是一个对象,不需要再用大括号括起来:

    body: JSON.stringify(bodyData);
    

    【讨论】:

    • 谢谢,我以为就是这样,但我可以让它工作。
    • 当我看到这个问题时,我的脑海里开始思考us undefined xD 但是,是的,你是对的
    • 第二种方法有两个问题,{} 和@Kenry 提到的问题。所以你也必须解决这个问题
    • 感谢你们俩的错字修正。
    • 谢谢,伙计们 xD @denden
    【解决方案2】:

    变量us 未定义..

    let bodyData = {
        'u': us,
        'p': pwrd,
    }
    

    在代码中:

    return fetch(url, {
            method: "POST",
            headers: headers,
            body: JSON.stringify({
                'u': usrn,    // <= can return this value on server
                'p': pwrd,    // <= can return this value on server
            })
        })
    

    您正在使用属性'u' 变量usrn。它被定义了

    将 bodyData 更改为..

    let bodyData = {
    'u': usrn,
    'p': pwrd,
    

    }

    【讨论】:

    • 正文:JSON.stringify(bodyData);。是的,但这是正确的答案。这家伙有权利
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-04-04
    • 1970-01-01
    • 2013-08-25
    • 1970-01-01
    • 2015-12-07
    相关资源
    最近更新 更多