2016-04-22 25 views
2

私は現在、アンドロイド向けのコードバハイブリッドアプリを開発中で、InAppBrowswer-Pluginを使用しています。Cordova InAppBrowserでの投稿要求の送信

Webページを開いてそこに投稿リクエスト(実際のAndroidアプリケーションでJava経由で行われているように)を使用してログインします。

何とかこれはうまくいかず、なぜ私は理解できません。あなたは私がまた私の「postAsString」をCONSOLE.LOG見ることができるように

var ref = cordova.InAppBrowser.open("www.thesite.dummy", "_blank", "location=yes"); 

var postAsString = 'var xhttp = new XMLHttpRequest();'+ 
    'xhttp.open("POST", "'+url+'", true);'+ 
    'xhttp.onreadystatechange = function() {if (xhttp.readyState == 4 && xhttp.status == 200) {alert("it worked")}};'+ 
    'xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");'+ 
    'xhttp.send("username=dummyUser&password=dummyPW")' 
console.log(postAsString); 

ref.executeScript({"code":postAsString}); 

:これは私が使用していたコードです。この文字列をコピーしてwww.thesite.dummyのコンソールで実行すると、実際には動作しますが、InAppBrwoserでは表示されません

+0

はhttps://stackoverflow.com/questions/37526321/cordova-inappbrowser-post-form-to-urlの重複のように見えます私には – Jannis

+0

新しいものを複製物と呼ぶのは意味がありますが、私は同意します。質問は同じです – Sergej

答えて

1

Googleからこの質問を見つけた方は、解決策はdescribed at that answerですコメント。特定のコンテキストの値を変更する

コードは、以下である:

var pageContent = '<html><head></head><body><form id="loginForm" action="www.thesite.dummy" method="post">' + 
'<input type="hidden" name="username" value="dummyUser">' + 
'<input type="hidden" name="password" value="dummyPW">' + 
'</form> <script type="text/javascript">document.getElementById("loginForm").submit();</script></body></html>'; 
var pageContentUrl = 'data:text/html;base64,' + btoa(pageContent); 

var browserRef = window.cordova.InAppBrowser.open(
    pageContentUrl , 
    "_blank", 
    "hidden=no,location=no,clearsessioncache=yes,clearcache=yes" 
); 
関連する問題