2

フラッシュオブジェクトを含むページがあります。特定のアクションで、ページは他のページにリダイレクトし、データ(変数)を送信する必要があります。これを行うために、urlvariablesとnavigateToURLを組み合わせて使用​​しています。ページがリダイレクトされ、データ(変数)が送信されます。

ただし、問題は、データ(変数)がクエリ文字列で送信されていることです(つまり、「http://dummy.php/?first_name=xyz」のようになります)。postメソッドを使用してデータ(変数)を送信しています。クエリ文字列のようにデータ(変数)を送信できません。

この問題を解決するにはどうすればよいですか?

PS:私はここにすべてのコードを書きました...

var request:URLRequest = new URLRequest("http://dummy.php");
var vars:URLVariables = new URLVariables();
vars.first_name = 'xyz';
request.data = vars;
request.method = URLRequestMethod.POST;
navigateToURL(request, "_blank");
4

3 に答える 3

2

Twitterの検索APIにPOSTリクエストを送信するこの簡単なテストを行いました(GETリクエストとPOSTリクエストの両方を受け入れるようです)。添付のスクリーンショットでわかるように、ブラウザのURLフィールドには変数が表示されておらず、Httpfox(Firebug、Chromeの開発者ツールなどでも同じことができます)には、期待どおりにPOSTによって渡される変数が表示されます。あなたが投稿したサンプルコードは、あなたに問題を引き起こしている本当のコードですか?これが私が使用したものです:

    // Create the POST request
var request:URLRequest = new URLRequest("http://search.twitter.com/search.json");
request.method = URLRequestMethod.POST;

// Create the variables object
var vars:URLVariables = new URLVariables();
vars.q = 'love';
vars.rpp = '5';
vars.include_entities = 'true';

// Attach variables to request object
request.data = vars;

// Open new window using the POST request
navigateToURL(request, "_blank");

POST変数が期待どおりに渡されることを示すHttpfoxのスクリーンショット

于 2012-04-17T13:05:30.993 に答える
1

課せられたさまざまな規則や制限を順守していますか?

POST リクエストを送信する場合、contentType と data プロパティの値が適切に対応している必要があります。contentType プロパティの値は、データ プロパティの値を解釈する方法をサーバーに指示します。

data プロパティの値が URLVariables オブジェクトの場合、contentType の値は application/x-www-form-urlencoded である必要があります。data プロパティの値が他のタイプの場合、contentType の値は、送信される POST データのタイプを示す必要があります (これは、data プロパティの値に含まれるバイナリ データまたは文字列データです)。FileReference.upload() の場合、リクエストの Content-Type は自動的に multipart/form-data に設定され、contentType プロパティの値は無視されます。

Flash Player 10 以降で、アップロード (POST 本文内の「content-disposition」ヘッダーの「filename」パラメーターで示される) を含むマルチパート Content-Type (「multipart/form-data」など) を使用する場合)、POST 操作は、アップロードに適用されるセキュリティ ルールの対象となります。POST 操作は、マウス クリックやキー押下など、ユーザーが開始したアクションに応答して実行する必要があります。POST 操作がクロスドメインの場合 (POST ターゲットが、POST リクエストを送信する SWF ファイルと同じサーバー上にない場合)、ターゲット サーバーはクロスドメイン アクセスを許可する URL ポリシー ファイルを提供する必要があります。また、マルチパート Content-Type の場合、構文は有効である必要があります (RFC2046 標準に従って)。構文が無効であると思われる場合は、

おそらく、何かがデフォルトでGETリクエストに戻る原因となっているのでしょう。

于 2012-04-17T11:29:41.450 に答える
1

このエラーは、次のことを行っているときに発生しました。

var vars:URLVariables = new URLVariables();
vars.q = 'http://example.com/var1=7&var2=9';

get スタイル変数は明らかに自動的に URL エンコードされないため、Flash は set POST メソッドから GET メソッドに戻ります。私はURLエンコーディングを使用し、離れているときの問題。

vars.q = encodeURIComponent('http://example.com/var1=7&var2=9');
于 2013-09-08T22:36:33.717 に答える