Javascript 如何为ajax post数据设置动态键?

Javascript 如何为ajax post数据设置动态键?,javascript,jquery,ajax,Javascript,Jquery,Ajax,我试图使用jquery在ajax post数据中设置动态键。我的问题是一样的,我也遵循同样的方式,但仍然面临问题。下面是我的ajax函数 function DisableFunction(id,section,token){ var dataVars = {}; dataVars[section] = token; dataVars['id'] = id; $.ajax({ type:'POST', url

我试图使用jquery在ajax post数据中设置动态键。我的问题是一样的,我也遵循同样的方式,但仍然面临问题。下面是我的ajax函数

function DisableFunction(id,section,token){
        var dataVars = {};
        dataVars[section] = token;
        dataVars['id'] = id;
     $.ajax({
        type:'POST',
        url:'post.php',
        data:JSON.stringify(dataVars),
        dataType:"json",
        ...
    });
}
下面是我的ajax调用html标记属性

onclick="return DisableFunction(1,'DisableNewsfeed','a6dba37437ced2c3b07469fd6c0661f3');"
当我点击它时,ajax函数不能正确地发布数据。我附上了ajax活动的屏幕截图


有谁能告诉我问题在哪里,我可以解决它,如果有人能告诉我,我将不胜感激。谢谢。

编辑:我不确定哪个id、节和令牌是相关的,但在任何一种情况下,dataVars对象都应该是这样的


我猜您不想将JSON数据传递给服务器,但希望它返回。因此,
data:dataVars
就是您想要的

我还稍微修改了dataVars对象

function DisableFunction(id, section, token){
        var dataVars = {
            token: token,
            section: section,
            id: id
        };
     $.ajax({
        type: 'POST',
        url: 'post.php',
        data: dataVars,
        dataType: 'json',
        contentType: "application/json",
        ...
    });
}

编辑:我不确定id、节和令牌属于什么,但在任何一种情况下,dataVars对象都应该是这样的


我猜您不想将JSON数据传递给服务器,但希望它返回。因此,
data:dataVars
就是您想要的

我还稍微修改了dataVars对象

function DisableFunction(id, section, token){
        var dataVars = {
            token: token,
            section: section,
            id: id
        };
     $.ajax({
        type: 'POST',
        url: 'post.php',
        data: dataVars,
        dataType: 'json',
        contentType: "application/json",
        ...
    });
}

从您的屏幕截图可以明显看出,内容类型设置为“application/x-www-form-urlencoded”,而不是“application/json”

将ajax调用更新为:

$.ajax({
        type:'POST',
        url:'post.php',
        data: dataVars,
        contentType: "application/json",
        ...
    })

从您的屏幕截图可以明显看出,内容类型设置为“application/x-www-form-urlencoded”,而不是“application/json”

将ajax调用更新为:

$.ajax({
        type:'POST',
        url:'post.php',
        data: dataVars,
        contentType: "application/json",
        ...
    })


“未正确过帐数据”。解释。@NehalJWani我的意思是缺少一些东西,你可以在附加的屏幕上看到shot@NehalJWani检查屏幕截图,我希望您能理解出了问题。我假设您的post.php文件中有一堆
if
s来检查设置了哪个键。。。不要这样做,并在对象中使用动态键,考虑创建另一个路由并动态设置URL。“不要正确发布数据”。解释。@NehalJWani我的意思是缺少一些东西,你可以在附加的屏幕上看到shot@NehalJWani检查屏幕截图,我希望您能理解出了问题。我假设您的post.php文件中有一堆
if
s来检查设置了哪个键。。。而不是这样做,并在对象中使用动态键,考虑创建另一个路由并动态设置URL。它设置了键“节”,我想使其动态。我正在
部分传递'DisableNewsFeed',但它没有设置。它是动态的,请确保正确命名键。我不得不猜测这些名字,因为你只提供了上面三把必需钥匙中的两把。如果你提供键的名称,我可以为你编辑它。它设置键“部分”,我想使它动态。我正在
部分传递'DisableNewsFeed',但它没有设置。它是动态的,请确保正确命名键。我不得不猜测这些名字,因为你只提供了上面三把必需钥匙中的两把。如果你给我钥匙的名字,我可以帮你编辑。打得好,我没注意到。你认为这有意义吗:
JSON.stringify(dataVars)
?@AdamPatterson不,不需要stringify。只需将变量直接传递给数据参数。一旦停止使用
JSON.stringify()
@AdamPattersonI,你甚至不需要设置contentType,这样发布的人就不会有错误的想法了。我同意海报不应该包括
JSON.stringify()
@AdamPatterson-我错误地认为你是OP:DGood,我没有注意到这一点。你认为这有意义吗:
JSON.stringify(dataVars)
?@AdamPatterson不,不需要stringify。只需将变量直接传递给数据参数。一旦停止使用
JSON.stringify()
@AdamPattersonI,你甚至不需要设置contentType,这样发布的人就不会有错误的想法了。我同意海报不应该包括
JSON.stringify()
@AdamPatterson-我错误地认为你是OP:D