4

GoogleのアプリにJavaScript(Google Chromeの拡張機能)から簡単なPOSTを実行しようとしています HTTP POSTが本当にGAEサーバーを使用していますが、単純なテキスト文字列を転送する方法を把握することはできず、Googleアプリケーションで使用しています。GoogleのアプリケーションエンジンにXMLHttpRequestを行う方法を理解できません

目的:xmlhttpRequestを使用してjavascriptから文字列を送信し、この文字列をgoogle-appウェブページに表示します。ここで

には、JavaScriptのコードです:

function onRequest(request, sender, sendResponse) { 
    var url = request; 
    var xhr = new XMLHttpRequest(); 
    xhr.open("POST", "http://myapp.appspot.com"); 
    xhr.send(url); 
    // Return nothing to let the connection be cleaned up. 
    sendResponse({}); 
    }; 

は、ここで私は、サーバー側のポストに対処方法は次のとおりです。

def post(self): 
    url1 = str(self.request.get('url1')) 
    self.response.headers['Content-Type'] = 'text/html' 
    self.response.out.write('<p>URL is: %s</p>' % url1) 

私はPOSTレスポンスを見てみると、私は

<p>URL is: </p> 
を見ます

ここで、送信されたvar urlはありますか?

答えて

5

私はそれを別の方法で動作させました。代わりにXMLHttpRequestを、私はjQueryの使用:

$.post("http://myapp.appspot.com", { url1: request}); 

をし、それが

ところで:)を働いていた、私はまた、あなたがChromeの拡張機能のHTMLはjqueryのを使用したい場合は、あなたが

<script src="jquery-1.5.1.js"></script> 
<script> your code here </script> 
を行う必要があることを発見しました

(あなたにとっては基本的だけど、私にとっては新鮮だと確信しています:)

+1

私はこの同じパターンの発見をしています(2012年現在)。いいXMLHttpRequestの方法を見つけることができませんしかし、いくつかの$ .ajax {stuff}ソリューションがあります。$。post(...)メソッドについて学んだリソースを投稿できますか? – Danny

0

xhr.send()に含まれるコンテンツは、CGI形式で指定されていない場合はself.request.bodyになります。簡単なテストの場合は、xhr.send("url1=" + request)も試してみてください。

+0

ありがとうございました。おそらくxhr.send( "url =" + request ")を意味しましたか? (あなたは 'url1'に 'url'を書いていません) –

+0

いいえ、うまくいきません:( –

関連する問題