将\n从javascript传递给python

DKe*_*ean 0 javascript python

我终于克服了将完整utf-8字符串从javascript 传递给python的问题,但是现在"\n"当在python中收到字符串时,Javascript端存在的回车符将丢失.有什么我应该做的事情来实现这一目标吗?

function saveMeetingComments(){
    var komments = $('#cmt_t').val()
    var d = new Date();
    var commentsText  = $('#cmt_t').val()
    var abc = ''
    var request = par_makeHttpObject();
    commentsText = stringTranslate(commentsText,"'",'`');
    request.open("POST", "saveMeetingNote?clientID="+clid_+
             "&co_ID="+coid_+
             "&msgDate="+dateFormat(d, "dddd, mmmm dS, yyyy, h:MM TT")+
             "&MeetType="+AGM_+
             "&MeetDate="+meetdate+"-"+
             "&Comments="+commentsText , false);
    request.send();
    $('#cmt_t').val('');
    parkAll();
}
Run Code Online (Sandbox Code Playgroud)

注释是唯一可能有回车的变量.在Python方面,代码如下:

def saveMeetingNote(self, **kwargs):
    clientID         = kwargs['clientID']
    co_ID            = kwargs['co_ID']
    MessageDate      = kwargs['msgDate']
    MeetingType      = kwargs['MeetType']
    MeetingDate      = kwargs['MeetDate']
    Comments_        = kwargs['Comments']
    coName = dennislib.CompanyCoID2NAME(co_ID)[0]['FName']
    ret = dennislib.saveMeetingNotes(clientID,co_ID,MessageDate,MeetingType,MeetingDate,Comments_,coName)
    return 
saveMeetingNote.exposed = True
Run Code Online (Sandbox Code Playgroud)

检查评论_表明这些\n都已经消失了......

TIA

丹尼斯

Cam*_*ron 5

在将数据粘贴到POST请求URL之前,您似乎没有对数据进行URL编码.换行不是唯一可能丢失的东西.当有人&在评论字段中输入内容时会发生什么?

使用encodeURIComponent来解决这个问题:

// ...
"&Comments=" + encodeURIComponent(commentsText)    // ...
Run Code Online (Sandbox Code Playgroud)

在服务器端,要解码此用途:

import urllib
# ...
Comments_ = urllib.unquote(kwargs['Comments']).decode('utf-8'))
Run Code Online (Sandbox Code Playgroud)