如何将 Handsontable 数据发布到 WordPress REST API?

Posted

技术标签:

【中文标题】如何将 Handsontable 数据发布到 WordPress REST API?【英文标题】:How to post Handsontable data into WordPress REST API? 【发布时间】:2018-06-30 23:53:05 【问题描述】:

我正在尝试使用 WP REST API 将 Handsontable 中的数据发布到 WordPress。这是我尝试过的:

 $('#publish').on('click',function(e)
            var data = JSON.stringify(hot.getDataAtRow(0));
            $.ajax(
                url: 'domain.com/staging/wp-json/wp/v2/posts/',
                method: 'POST',
                crossDomain: true,
                dataType: 'json',
                contentType: 'application/json',
                data: data,
                beforeSend : function(xhr) 
                    xhr.setRequestHeader( 'X-WP-Nonce', wpApiSettings.nonce );
                ,
                success: function( data ) 
                    console.log( data );
                ,
                error: function ( error ) 
                    console.log( error );
                
            );
        );

我收到了这个回复:

"code":"empty_content","message":"内容、标题和摘录是 空。","数据":"状态":400

然而,JSON.stringify(hot.getDataAtRow(0)) 的输出是这样的:

["John Doe","Sample text","publish"]

我尝试了手动设置数据的方式,它可以工作:

data: 
  "title": "John Doe",
  "content": "Sample text",
  "status": "publish"

所以我的问题是: 如何从 Handsontable 获取该格式的数据?我需要设置哪个字段是标题、内容、状态、摘录等。

【问题讨论】:

【参考方案1】:

JSON.stringify(hot.getDataAtRow(0)) 的输出会为您提供一个字符串数组,而 API 需要一个包含 3 个字段的对象。

试试:

var data = 
  "title": hot.getDataAtCell(0, 0),
  "content": hot.getDataAtCell(0, 1),
  "status": hot.getDataAtCell(0, 2),
;

然后在你的 AJAX 调用中:

data: JSON.stringify(data),

【讨论】:

以上是关于如何将 Handsontable 数据发布到 WordPress REST API?的主要内容,如果未能解决你的问题,请参考以下文章

如何将更新的列名从 HandsOnTable 传递到 Shiny 中的绘图?

如何仅将选定的行从handsontable导出到csv

如何将(批量)Handsontable Json 数组插入到 oracle 表中?

Handsontable 如何手动将单元格设置为无效

如何 Onload() 将焦点设置为 jQuery Handsontable

将 Json 数据传递给handsontable