【发布时间】:2014-10-29 10:31:49
【问题描述】:
我希望通过 $.ajax 作为 JSON 发送许多不同的查询。
我已使用以下方法将这些查询存储在一个对象中:
var objectName = {
"name1": {
"queryName": "longname1",
"queryAction": "JSONtoSend"
},
"name2": {
"queryName": "longname2",
"queryAction": "JSONtoSend"
},
};
然后我将浏览 queryActions 并设置它们:
for (var i = 0, len = Object.keys(objectName).length; i < len; ++i) {
var indexName = Object.keys(objectName)[i];
objectName[indexName].queryAction = "";
var JSONtoTransfer = objectName[indexName].queryAction;
}
$.ajax({
type: "POST",
url: 'URL',
data: JSONtoTransfer,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(dataReturn){
alert(dataReturn.blah);
}
});
我无法设置 var JSONtoTransfer。它给了我一个意想不到的 [ 错误。我该如何解决这个问题?如果我直接将它输入到 $.ajax 的数据参数中,我会得到同样的错误。
我正在使用的代码将查询正确地存储在对象中,但我需要一种方法来遍历它们并通过 $.ajax 发送。
感谢您的帮助。这段代码可能不是最有效的做事方式,所以如果有人有任何建议,也非常欢迎:-)
所以我把原代码写错了,$.ajax 调用应该包含在 for 语句中。所以它实际上是在迭代......
无论如何,我发现工作是创建一个数组,将 queryAction 推入其中,然后对其进行字符串化...
【问题讨论】:
-
您必须在循环对象之前定义 JSONtoTransfer 变量: var JSONtoTransfer = []; for(...) { JSONtoTransfer.push(objectName[indexName].queryAction); }
-
你为什么要设置
objectName[indexName].queryAction = "";? -
@A.Wolff 我不是,它会是一个字符串/JSON。
-
@SimonHarper 你的代码对我来说没有多大意义......即便如此,你的
"JSONtoSend"肯定不是有效的 json -
不够清楚,无法理解您要发送的内容。它是一个字符串吗?您希望 objectName.keys 成为 POST 参数吗?
标签: javascript jquery ajax json