0

Silverlight 5 で:

var uri= new Uri("http://www.last.fm/api/auth/?api_key=xyz&cb=http://localhost:19000/callback?bla=blu")
HtmlPage.Window.Navigate(uri);

私のブラウザは次の場所に着陸します: http://www.last.fm/api/auth?api_key=xyz&cb=http://localhost:19000/callback%253Fbla=blu

「?」の意味に注意してください。コールバック パラメータの URL が %253F にエスケープされますが、デバッガで uri.ToString() を見ると、エスケープされていません。

どうすればそれを防ぐことができますか?

どうもありがとう、マックス

4

1 に答える 1

0

答えはありませんでしたが、誰かが同じ問題に出くわした場合、私が試したことと最終的にやったことは次のとおりです。

まず、HtmlPage.Window.Eval() を使用して、その URL に移動する JavaScript を実行しようとしました。繰り返しますが、? URL.ToString() がエスケープしなかったにもかかわらず、エスケープされました。

それで、私が最終的にやったことは - もっと早く考えられたかもしれませんが、本当に ;P - コールバック ハンドラを REST のような形式に従うように変更することでした。それ以外の:

http://localhost:19000/callback?bla=blu

次の場所でリッスンします。

http://localhost:19000/callback/bla=blu

パスからパラメーター値を取得します。疑問符はもう関係ありません。問題は解決しました。

于 2013-05-14T13:07:56.550 に答える