使用jquery ajax将json作为数据属性发送

时间:2014-01-15 15:13:40

标签: jquery json wordpress backbone.js

更新

我试图通过jquery ajax发布带有嵌套集合的模型。 然而,骨干方法.toJSON()无法处理嵌套集合。

我找到了一种非常好的方法来修改.toJSON()并在此处递归:

http://www.shesek.info/web-development/recursive-backbone-models-tojson

原始问题:

我正在使用Backbone.js进行Wordpress插件,我有一个模型,我需要发送服务器端,稍后通过curl转发到外部服务器。

问题是:我真的找不到将模板从backbone.js发布到wordpress服务器(与骨干javascript文件相同的服务器)的方法。

我试图像这样覆盖model.save方法:

App.Models.Order = Backbone.Model.extend({
   save: function() {
   var model = this;
   jQuery.ajax({
      type: 'post',
      dataType: 'json',
      url: my_plugin_ajax_namespace.ajaxurl,
         data: {
         action: 'my_plugin_order_function',
         my_plugin_namespace_order: JSON.stringify(model.toJSON())
      },
      success: function(response) {
     console.log('order saved');
         console.log(response);
      }
   }
});

试图接收和解码json模型的my_plugin_order_function看起来像这样:

add_action( 'wp_ajax_my_plugin_order_function', 'my_plugin_order_function' );
add_action( 'wp_ajax_my_plugin_order_function', 'my_plugin_order_function');

function my_plugin_order_function() {
   $order = json_decode($_POST['my_plugin_namespace_order']);
   /* supposed to do some curl stuff here, but when testing, just return the same model */
   $result = $order;
   echo json_encode($result);
   die();
}

但是我得到了空!

谷歌搜索了很多,但找不到答案。我不能将内容类型设置为json,因为action不是json,对吧?我真的应该像这样使用stringify.JSON吗?覆盖model.save方法是一个糟糕的解决方案吗? 我实际上只是尝试将其中一个数据属性作为json发送。这甚至可能吗?

0 个答案:

没有答案