2017-06-10 10 views
0

クロムエクステンションからを使用してローカルに実行されているdjangoアプリケーションにメッセージを送信しています。私はURLでメッセージをキャプチャすることができますが、何とかGETパラメータ全体がキャプチャされていません。例えば、私は全体のGETパラメータをキャプチャするにはどうすればよい、Django request.GET.get()URL文字列を切り捨てる

The Idiots - Rainbow Six Siege Funny Moments 

"GET /sensitiveApi/?text=%20%20%20%20The%20Idiots%20-%20Rainbow%20Six%20Siege%20Funny%20Moments%20&%20Epic%20Stuff%20%20We%27re%20back%20with%20some%20Rainbow%20Six%20Siege%20funny%20moments!%20All%20clips%20were%20streamed%20live%20on%20my%20Twitch:%20https://www.twitch.tv/teosgameMore%20Siege%20funny%20moments:%20https://www.youtube.com/playlist?list...Discord:%20https://discord.gg/teoTwitter:%20https://twitter.com/LAGxPeanutPwnerInstagram:%20https://www.instagram.com/photeographPeople%20in%20video:Alex:%20https://twitter.com/AlexandraRose_GKatie:%20https://www.twitch.tv/katielouise_jKatja:%20https://www.twitch.tv/katjawastakenPaddy:%20https://twitter.com/Patward96Smii7y:%20https://www.youtube.com/user/SMii7YSnedger:%20https://www.twitch.tv/snedgerStefan:%20https://twitter.com/lagxsourTortilla:%20https://twitter.com/Tortilla_NZColderMilk:%20https://www.youtube.com/user/ColderMilkColderMilk%20Twitch:%20https://www.twitch.tv/colder_milkColderMilk:%20Twitter:%20https://twitter.com/colder_milkMusic%20used:Outro:%20Come%20Back%20from%20San%20Francisco%20(Instrumental)%20by%20Rameses%20B%20https://www.youtube.com/watch?v=fBWac...%20Go%20check%20out%20his%20music!%20:)%20https://www.youtube.com/RamesesB2 HTTP/1.1" 200 2 

これは私がキャプチャすることを1つの応答があると私はrequest.GET.get('text', '')をやって、それが返すすべては、このですか?

私はchrome.runtime.sendMessageを使用する方法これは、

chrome.runtime.sendMessage({ 
     method: 'GET', 
     action: 'xhttp', 
     url: "http://127.0.0.1:8000/sensitiveApi/?text=", 
     data : text 
    }); 
+0

URLに '&'が付きません。 –

+1

指定した例でアンエスケープされたアンパサンド( '&')文字があります。 Djangoはこれを新しいクエリパラメータの先頭として解釈します。あなたはDjangoにメッセージを送る前にこれをエスケープする必要があります。 – snakecharmerb

+0

どうすれば修正できますか?引用符で囲まれていない '&'はどこにでも置くことができますか?ここの 'text'は' YouTube'のビデオタイトルと説明を表します –

答えて

1

%-エンコードする必要がエスケープさアンパサンド(&)、:

>>> import urllib 
>>> print(urllib.quote('&'.encode('utf-8'))) 
%26 

URL(http://www.example.com?fields=name&age)下記のようになります&と値:

url = http://www.example.com?fields=name%26age 
+0

djangoサーバに送る前にencodeURIComponentをテキストに追加しましたが、これも良いようです。ありがとう! –