【问题标题】:How to send an Object with jQuery's .post() function?如何使用 jQuery 的 .post() 函数发送对象?
【发布时间】:2012-07-09 12:10:47
【问题描述】:
var itemsObj = new Object();
itemsObj.data = "Something";
$.post("somewhere.php", itemsObj, function(data) {}, "html");

通常,如 API 中所述,我会使用 { data: "something" } ,其中 itemsObj 是,但由于我的对象是动态的并且需要一个 for 循环,我不想让data: ... 部分中的 for 循环...

无论如何,我上面写的代码不起作用。我想也许我应该在上面应用JSON.stringify() 函数,如果我错了,请纠正?

【问题讨论】:

  • 服务器想要什么? JSON字符串? URL 编码的键值对?
  • 你能澄清'不起作用'吗?您在开发工具的网络请求部分看到了什么?你的后端怎么样?

标签: javascript jquery ajax object post


【解决方案1】:

像这样向 itemsObj 添加数据...

var itemsObj = {};

itemsObj['Firstdata'] = "Something";
itemsObj['Seconddata'] = "Something else";

等等...您可以使用循环来做到这一点...

然后使用$.post("somewhere.php", itemsObj, function(data) {}, "html"); 发布,它应该可以工作...

【讨论】:

  • 谢谢。似乎obj.['something'] 不起作用所以我不得不将其更改为obj['data'],然后我尝试将object 发送到另一个页面,但这也不起作用。通常我会以{ data: "something" } 发送它并像$_POST['data'] 那样访问它,现在有什么不同?
  • 谢谢。我是如何发送/接收对象的?我尝试查看@Engineer 的答案,看起来可靠,例如我访问data? :P
  • @xTCx 上面的内容将完全做到,当您在上面发布 itemsObj 时,它会发布类似 {"Firstdata":"Something","Seconddata":"Something else"} 的内容,这是一个有效的 JSON 对象,您可以通过 $_POST["Firstdata"] 访问它
  • @xTCx 您使用$.post("somewhere.php",itemsObj, function(data){},"html"); 发送:)
  • 啊!好的,是的,我的代码中实际上有一个错字;)谢谢! :D
【解决方案2】:

您可以使用 JSON:

$.post("somewhere.php", "param="+JSON.stringify(itemsObj), function(data) {}, "html");

然后在服务器端:

$obj = json_decode($_POST["param"]);

【讨论】:

  • 你假设他使用 PHP 作为他的后端。
  • 是的,我假设,看看这个问题。"somewhere.php" 被提到作为帖子的 URL。
  • @MisterJack 我还假设您的反对意见无关紧要。
  • +1 @Engineer : 不用担心投反对票,匿名投反对票已经成为 SO 中的病毒
  • @user1042031 在这种情况下它不是匿名的:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-03-01
  • 2014-02-07
  • 2019-10-16
  • 2022-06-14
  • 2019-05-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多