簡體   English   中英

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參數分為三個相同的條目,而不是消息中包含三行的單個條目數組。

如果有人對如何解決此問題有任何想法,我將不勝感激。

如果要保留換行符,則服務器(或數據接收器)最終需要使用約定的格式來恢復換行符。

將多行字符串拆分為一個數組(如您所完成的)是一種方法。 然后,服務器/接收器將使用換行符將數組加入反序列化中。 請注意,在URL中具有多個相同名稱的查詢參數是完全可以接受的,接收者可以將其合並到一個數組中(如在此Flask測試應用中所示 )。

或者,您可以對換行符進行編碼(即用%0A替換\\n )或換行(即用\\\\n替換\\n \\\\n )。 然后,服務器/接收器必須對其進行解碼/轉義以恢復原始消息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM