文字列 (実際には xml ですが、文字列を取得しようとしています) を持つサーバーと Silverlight アプリの間のプロキシとして機能するハンドラーを使用しています。ハンドラーを作成し、文字列 (xml) を適切に収集します。私が抱えている問題は、その文字列を JSON から、JavaScript が Silverlight コードに返すことができる文字列に変換することです。
Javascript:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
var xmlReturn = new String("");
function xmlStart() {
$.getJSON('xmlProxy.ashx', function (data) {
setXml(data);
});
}
function setXml(data) {
xmlReturn = data;
}
function getXml() {
alert(xmlReturn);
return xmlReturn;
}
シルバーライト:
private void button1_Click(object sender, RoutedEventArgs e)
{
HtmlPage.Window.Invoke("xmlStart");
string test = (String)HtmlPage.Window.Invoke("getXml");
textBox1.Text = test;
}
念のため、ハンドラー コード (セキュリティのために baseurl を取り出しています):
namespace HttpHandler_Proxy
{
public class xmlProxy : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
WebClient getCap = new WebClient();
string baseurl = "some_url";
string response = getCap.DownloadString(baseurl);
context.Response.ContentType = "application/json";
context.Response.Write(response);
}
public bool IsReusable
{
get
{
return false;
}
}
}
}
私は Javascript と jQuery の両方に不慣れなので、これは些細な質問かもしれませんが、そのことをお詫び申し上げます。このバージョンのコードではxmlReturn
、""
私は他のバージョンを実行しましたが、コードは常に null/undefined/"" として Silverlight に返されます。