gpt4 book ai didi

javascript - 在jquery的 'data'方法中将对象分配给 '$.ajax'属性

转载 作者:行者123 更新时间:2023-11-30 08:54:42 25 4
gpt4 key购买 nike

这是我对这个主题的了解:

我们有一个 ajax 函数,我们可以向它传递一个具有如下属性的对象:

    var ajaxRequest = {};

ajaxRequest['type'] = 'POST';
ajaxRequest['async'] = false;
ajaxRequest['datatype'] = 'json';
ajaxRequest['url'] = '/Query/getMydata';

$.ajax(ajaxRequest);

其中一个属性是由键/值对组成的数据参数:

    ajaxRequest['data'] = {color: 'red' , name: 'Steve' }

我试着做这样的事情:

    var oData = [];
oData['color'] = 'yellow';
oData['name'] = 'Fred';

ajaxRequest['data'] = oData;

但它不起作用。

所以我的问题是:我可以将一个对象分配给“数据”参数,或者我被迫通过串联构建字符串?

编辑==============

可能是我没解释,我知道可以通过这样的代码创建方法:

     var ajaxRequest = {
type: 'POST',
async: false
....
};

但我正在使用对象和属性,因为我需要使方法“通用”,然后我将像这样添加“if”:

    function ajaxReq(data){
var ajaxRequest = {};

if( !data.isEmpty()){
ajaxRequest['data'] = data;
}

ajaxRequest['type'] = 'POST';
ajaxRequest['async'] = false;
ajaxRequest['datatype'] = 'json';
ajaxRequest['url'] = '/Query/getMydata';

...

$.ajax(ajaxRequest);
}

最佳答案

您的复杂方法完全没有必要。你应该只使用对象字面量:

var ajaxRequest = {
type: 'POST',
async: false
datatype: 'json',
url: '/Query/getMydata'
};

$.ajax(ajaxRequest);

你也可以嵌套它们,所以你可以这样:

var ajaxRequest = {
type: 'POST',
async: false
datatype: 'json',
url: '/Query/getMydata',
data: {
color: 'yellow',
name: 'Fred'
}
};

jQuery 会为您将其转换为查询字符串,因此您无需担心。


额外的说明... oData = [] 导致问题的原因是 [] 创建了一个数组。在 Javascript 中,数组是一种特殊的对象。只有带有数字键的属性才被视为数组的成员(例如 oData[1])。如果您像使用 ajaxRequest 一样使用对象字面量 ({}),它就可以正常工作。

关于javascript - 在jquery的 'data'方法中将对象分配给 '$.ajax'属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14650120/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com