iron-ajax 试图通过 xhr 多行字符串或数组子表达式传输
iron-ajax trying to transmit by xhr multiline string or array subexpression
我有一个来自 paper-textarea 元素的多行字符串,我正在尝试将其传输到服务器。
我的第一次尝试是直接将它发送到服务器,但是 iron-ajax 删除了换行符,大概是因为 json 编码问题。
我的第二次尝试涉及将字符串行拆分为数组的条目,让我们看看结果如何。
<iron-ajax
...
params={{ajax_new_tag_and_entry}}
...
</iron-ajax>
这是改变'ajax_new_tag_and_entry”的函数:
tap_submit_entry : function(){
this.ajax_new_tag_and_entry=
{ tag : this.journal_tags[this.the_journal_tag].tag,
entry : this.the_journal_entry.split("\n") };
console.log(this.the_journal_entry);
console.log(this.the_journal_entry.split("\n"));
}
当我这样做时 'console.log(this.the_journal_entry);' 我得到:
One message
to rule
them all.
当我 'console.log(this.the_journal_entry.split("\n"));' 我得到:
Array [ "One message", "to rule", "them all." ]
但是 Firefox 开发者工具告诉我这是发送到服务器的参数:
tag:"general_message"
entry:"One message"
entry:"to rule"
entry:"them all."
这显然意味着 xhr 参数的条目被分成三个相同的条目,而不是消息中包含三行的单个条目数组。
如果有人对我如何解决这个问题有任何想法,我将不胜感激。
如果要保留换行符,服务器(或数据接收方)最终需要使用商定的格式恢复换行符。
将多行字符串拆分为一个数组(正如您所做的那样)是一种方法。 server/receiver 然后将使用换行符加入数组作为反序列化。请注意,在 URL 中具有多个同名查询参数是完全可以接受的,接收方可以将其合并到一个数组中(如此 Flask test app 中所示)。
或者,您可以编码(即,将 \n
替换为 %0A
)或转义(即,将 \n
替换为 \n
)换行符。然后,server/receiver 必须 decode/unescape 他们恢复原始消息。
我有一个来自 paper-textarea 元素的多行字符串,我正在尝试将其传输到服务器。
我的第一次尝试是直接将它发送到服务器,但是 iron-ajax 删除了换行符,大概是因为 json 编码问题。
我的第二次尝试涉及将字符串行拆分为数组的条目,让我们看看结果如何。
<iron-ajax
...
params={{ajax_new_tag_and_entry}}
...
</iron-ajax>
这是改变'ajax_new_tag_and_entry”的函数:
tap_submit_entry : function(){
this.ajax_new_tag_and_entry=
{ tag : this.journal_tags[this.the_journal_tag].tag,
entry : this.the_journal_entry.split("\n") };
console.log(this.the_journal_entry);
console.log(this.the_journal_entry.split("\n"));
}
当我这样做时 'console.log(this.the_journal_entry);' 我得到:
One message
to rule
them all.
当我 'console.log(this.the_journal_entry.split("\n"));' 我得到:
Array [ "One message", "to rule", "them all." ]
但是 Firefox 开发者工具告诉我这是发送到服务器的参数:
tag:"general_message"
entry:"One message"
entry:"to rule"
entry:"them all."
这显然意味着 xhr 参数的条目被分成三个相同的条目,而不是消息中包含三行的单个条目数组。
如果有人对我如何解决这个问题有任何想法,我将不胜感激。
如果要保留换行符,服务器(或数据接收方)最终需要使用商定的格式恢复换行符。
将多行字符串拆分为一个数组(正如您所做的那样)是一种方法。 server/receiver 然后将使用换行符加入数组作为反序列化。请注意,在 URL 中具有多个同名查询参数是完全可以接受的,接收方可以将其合并到一个数组中(如此 Flask test app 中所示)。
或者,您可以编码(即,将 \n
替换为 %0A
)或转义(即,将 \n
替换为 \n
)换行符。然后,server/receiver 必须 decode/unescape 他们恢复原始消息。