通过YUI IO实用程序将JSON对象发送回服务器

Sending JSON object back to server through YUI IO utility?

本文关键字:服务器 对象 JSON YUI IO 实用程序 通过      更新时间:2023-09-26

我正在运行一个生成随机数据并将其显示在HTML表中的网页。我从表中运行一个循环来收集基本信息(所有存在的行,并排除表的表头)。这些数据存储在一个名为jData的JSON对象中。

我想将这些数据发送回服务器,并存储在名为data的sqlite表中。我尝试这样做的方式是通过YUI IO实用程序。

我正试图浏览API文档,但运气不佳。我在页面上有两个按钮。一个用于生成数据,另一个用于存储数据。商店代码如下:

var savedata = function(){
    var tabledata = Y.one("#generatedtable")._node;
    var jData = [];
    var i = 1;
    var length = tabledata.rows.length
    while (i<length){
        var samplerow = {};
        var r = tabledata.rows[i];
        samplerow.timestamp = r.cells[0].innerHTML;
        samplerow.volts = r.cells[1].innerHTML;
        samplerow.amps = r.cells[2].innerHTML;
        samplerow.kW = r.cells[3].innerHTML;
        samplerow.kWh = r.cells[4].innerHTML;
        jData.push(samplerow);
        i++;
        }
Y.io("./savedata", Y.System_Config.postjData(jData));
};

使用chrome调试器工具,我看到数组被正确地存储到jData中。我需要一些关于Y.io和如何发帖的基本帮助。非常感谢任何基本的帮助。我的服务器运行在Django Python web应用程序框架中。

您应该阅读IO用户指南。用YUI中的JSON数据发出POST请求非常简单,只需将HTTP方法设置为POST,添加数据并将Content-Type设置为application/json即可。唯一需要注意的是,您需要首先使用JSON.stringify()将JSON对象转换为字符串。

Y.io('/savedata', {
  method: 'POST',
  data: Y.JSON.stringify(jData),
  headers: {
    'Content-Type': 'application/json'
  },
  on: {
    success: function (id, response) {
      // do something with the response from the server, for example
      Y.one('#some-node').set('text', response.responseText);
    }
  }
});

您可以在《用户指南》的"配置对象"部分阅读有关IO的所有配置选项的更多信息。这里有一个带有JSON数据的POST请求示例。