2017-02-21 4 views
1

私はAndroid AppでWebサーバーとしてNanoHTTPDを使用していますが、クライアントでSubmitCheckedItemsForm()という機能を使用して日付を送信しています。IE 11.0クライアントからデータを送信するときに「GET」メソッド情報が表示されるのはなぜですか?

WebサーバークライアントでFireFoxとChromeの両方のコードを にすると "POST"メソッド情報を受け取ることができますが、IE 11.0のコードをlanuchすると "GET"メソッド情報が表示されます。どうして?

Serverコード

@Override 
public Response serve(IHTTPSession session) { 
    String uri = session.getUri(); 
    Method method = session.getMethod(); 
    Utility.LogError("Method: "+method); 
} 

HTML

<form action="" method='post' enctype='multipart/form-data' id="FormForAction"> 
</form> 

JS

function SubmitCheckedItemsForm(action) { 

    var mytemp = GetArrayOfCheckedItems(); 
    var formID = "#FormForAction"; 

    $(formID).unbind("submit"); 

    alert(mytemp); 

    $(formID).submit(function (eventObj) { 

     $(formID).empty(); 

     $('<input />').attr('type', 'hidden') 
      .attr('name', action) 
      .attr('value', JSON.stringify(mytemp)) 
      .appendTo(formID); 
    }); 

    $(".FilenameCheckboxForSelect").prop("checked", false); 

    $(formID).submit(); 
} 

変更されたJS

function SubmitCheckedItemsForm(action) { 

    var mytemp = GetArrayOfCheckedItems(); 
    var formID = "#FormForAction"; 

    $(formID).unbind("submit"); 

    alert(mytemp); 

    $(formID).submit(function (eventObj) { 

     $(formID).empty(); 

     $('<input />').attr('type', 'hidden') 
      .attr('name', action) 
      .attr('value', JSON.stringify(mytemp)) 
      .appendTo(formID); 

     $('<div>Body</div>').appendTo(formID); 
    }); 

    $(".FilenameCheckboxForSelect").prop("checked", false); 

    $(formID).submit(); 
} 
+0

あなたは結果の任意のスナップショットを共有してくださいことはできますか? –

+0

ありがとう! Asth Srivastavaに:私はUtility.LogError( "Method:"メソッド)を使用して結果を得ます – HelloCW

+0

IE 11.0で "GET"メソッドを取得し、FirefoxとChromeの両方で "POST"メソッドを取得することができます – HelloCW

答えて

1

最後にこれを見つけました。ブラウザーを使用してInternet Explorer 11でHTTP POST要求を送信すると、HTTP POST要求がメッセージ本文なしで送信されると、代わりにGETメソッドが使用されます。これはブラウザの問題です。 Microsoftのサポートページでも確認できます。ここでは:issue with Form method attribute

+0

ありがとう!コード内でどのように修正できますか? – HelloCW

0

これはあなたのコードの問題ではなく、ブラウザの問題です。これを試すことができます:

IEで保護モードを有効/無効にするオプションがあります。このオプションは、 "インターネット"ゾーンと "ローカルイントラネット"ゾーン(またはそれらのいずれか)でデフォルトで有効になっています)。この2つの場所で無効にすると、問題が解決する可能性があります。

ツール - >インターネットオプション - >セキュリティ - >インターネット/ローカルイントラネット - > [保護モードを有効にする]オプションをオフにします。 問題が解決したら、これを試してみてください。

サンプルコード:

<form action="your_action_page" method="post" enctype='multipart/form-data' id="FormForAction"> 
    First name: <input type="text" name="fname"><br> 
    Last name: <input type="text" name="lname"><br> 
    <input type="submit" value="Submit"> 
</form> 
+0

ありがとう!問題を解決するためにコードにメッセージ本文を追加することはできますか? – HelloCW

+0

もしそうなら、サンプルコードを教えていただけますか? – HelloCW

+0

お試しください。それがうまくいくならば良い。 –

関連する問題