2009-07-28 7 views
1

私はこのようなコードを持って:のJavaScript/Ajaxの/フラッシュHTTPリクエスト

swfobject.embedSWF("/Content/open-flash-chart.swf", 
        "my_chart", 
        "750", 
        "300", 
        "9.0.0", 
        "expressInstall.swf", 
{"data-file":"http://localhost:8803/StatisticService/GetOpenFlashChartStatistic_Json?param1=123&param2=456"} 
); 

結果が...要求は常に最初のものを除いて、任意の追加のパラメータなしで作られていること、であるので、要求がどのように見えますこれは:

http://localhost:8803/StatisticService/GetOpenFlashChartStatistic_Json?param1=123 

他のすべてのパラメータが使用されない理由はありますか?私は少なくとも、コールのいくつかの破損したパラメータを期待するだろうが、それは単に切り捨てられている。

ありがとうございました

答えて

1

あなたはURLエンコードするためにあなたがswfobjectに渡すのFlashVarsを必要とする - ので、URLエンコード全体のデータ・ファイルのURL(あなたの後にURLエンコード、必要に応じて、URL内の個々のparamsのいずれか):

題したオープンフラッシュチャート tutorial 3セクションで述べたように
{"data-file": encodeURIComponent("/mydata?q=" + encodeURIComponent(x) + "&p=" + encodeURIComponent(y))} 

http://teethgrinder.co.uk/open-flash-chart-2/tutorial-3.php

0

同じ結果が得られるかどうかを確認するためにパラメータを切り替えてみましたか?エンコードに問題がある可能性があります。使用されている実際のパラメータのリストを表示すると役立ちます。

+0

はい、それをもう一度試してみました。私の個人的な推測では、& - 文字と関係があります...しかし、どうすればこれらを回避できますか? – David

+0

ここで変数を使用しているようには見えません。一重引用符を使用してみてください。 –

1

を参照してください「ストップ!そしてこれを読む...」あなたは絶対に必見 URLはswfobjectに渡されるパラメータをエンコード。

スクリプトの中で次のようにあなたがこれを行うことができます:

swfobject.embedSWF("/Content/open-flash-chart.swf", 
       "my_chart", 
       "750", 
       "300", 
       "9.0.0", 
       "expressInstall.swf", 
{"data-file": encodeURIComponent("http://localhost:8803/StatisticService/GetOpenFlashChartStatistic_Json?param1=123&param2=456")} 
); 

あなたはswfobjectに渡すすべて値をエンコードすることを確認してくださいので、あなたが追加したにエンコードを追加することを確認する必要があります未来。

乾杯。

0

あなたのカウントに入力ミスがない限り、変数名の引用符を削除する必要があります。

//not this 
{"data-file":"http://localhost:8803/"} 

//this 
{dataFile:"http://localhost:8803/"} 

これはあなたのために働くかどうか分かります。

EDIT

おっと!それを正しく読まなかった、はい、常にパラメタをエンコードします。

関連する問題