0

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();
}

コメントは、キャリッジリターンを持つ可能性のある唯一の変数です。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

Comments_を調べると、\nすべてがなくなっていることがわかります...

TIA

デニス

4

2 に答える 2

5

POSTリクエストURLにデータを貼り付ける前に、データをURLエンコードしていないようです。失われる可能性があるのは改行だけではありません。&コメントフィールドに誰かが入力するとどうなりますか?

encodeURIComponentこれを修正するために使用します。

// ...
"&Comments=" + encodeURIComponent(commentsText)    // ...

サーバー側では、これをデコードするには次のようにします。

import urllib
# ...
Comments_ = urllib.unquote(kwargs['Comments']).decode('utf-8'))
于 2012-06-07T04:05:33.000 に答える
1

encodeURIComponent()POSTリクエストに連結する前に、すべての変数で使用してください。

于 2012-06-07T04:05:21.703 に答える