- - PR -
responce.writeした値を取得したい
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-07-20 17:45
こんにちは、ふじおです。
aspxでResponse.Writeしている値を、aspで取得したいのですが どなたか方法を知りませんか? 以下は、サンプルです。 ○aspxのソース(text.aspx) msg = "http://www.yahoo.co.jp" + "\r\n"; Response.Write(msg); msg = "http://www.google.co.jp" + "\r\n"; Response.Write(msg); ○html <body onload="http://www.xxxx.com/text.aspx"> この後に取得できた値を表示したい 以上、よろしくお願いします。 [環境] Windows2003Server Microsoft Visual C#.NET Microsoft .NET Framework1.1 | ||||||||
|
投稿日時: 2006-07-20 18:35
やりたいのはAjaxみたいな感じですか?
@IT:古くて新しいAjaxの真実を見極める http://www.atmarkit.co.jp/fwcr/special/ajax01/03.html | ||||||||
|
投稿日時: 2006-07-24 09:30
burton999さん回答ありがとうございます。 Ajaxも試してみたのですが、他ドメインからは出来ないみたいですね。 以下のソース(html,javascript)をinetpub\wwwroot\testに置き、 http://localhost/test/test.htmlは実行できるのですが 外の端末からhttp://www.yyyy.com/test/test.htmlでは httpoj.openで「書込みできません。」になってしまいました。 ○html(http://www.yyyy.com/test/text.html) <html> <head> <title></title> <script type="text/javascript" src="test.js"></script> </head> <form> <body onload="requestUrl('testID','POST','http://www.xxxx.com/text.aspx',true,on_loaded);"> <!-- ここへリンクを出力 --> <div id="testID" style="margin-left:20px;line-height:1em"></div><br> </body> </form> </html> ○javascript(http://www.yyyy.com/test/text.js) function requestUrl( data , method , url , async ,callback ) { //XMLHttpRequestオブジェクト生成 var httpoj = createHttpRequest() //受信時に起動するイベント httpoj.onreadystatechange = function() { //readyState値は4で受信完了 if (httpoj.readyState==4) { //コールバック callback(httpoj, data, url) } } try { //open メソッド httpoj.open( method , url , async ) //send メソッド httpoj.send( data ) } catch(e) { if(typeof e == 'object') { alert(e.message); } else { alert(e); } } } ○aspxのソースの一部(http://www.xxxx.com/text.aspx) msg = "http://www.yahoo.co.jp" + "\r\n"; Response.Write(msg); localでテストして出来たっと思って喜んでいたのでが 本番サーバに置いたら出来なかったので、ショックでした。 誰か御教授お願いします。 | ||||||||
|
投稿日時: 2006-07-24 10:19
最終的には外部ドメイン(http://www.yahoo.co.jp)からレスポンスを取得して何がしたいのでしょうか?
スクリプトから外部ドメインにリクエストできないのはセキュリティ上の制限なので、外部ドメインからレスポンスを取得する処理をサーバーサイドでやってはいかがでしょう? サーバーのaspxがプロキシのように動作するイメージです。 | ||||||||
|
投稿日時: 2006-07-24 10:27
burton999さん、早速の回答ありがとうございます。 「http://www.yahoo.co.jp」はサンプルです。安易なサンプルですみませんでした。 実際には、サーバでDBを検索して、値をResponse.Writeで返しています。 「サーバーのaspxがプロキシのように動作するイメージです。」 のイメージが解らないのですが。 もうちょっと詳しく教えて頂けると有難いのですが。難しいでしょうか? 勉強不足ですみません。 | ||||||||
|
投稿日時: 2006-07-24 10:36
Proxy.aspx
こんなイメージです。 Proxy.aspxにクエリ文字列で、どこのレスポンスを取得して欲しいのか渡せばいいかと。 あと例外処理などは省いてます。aspxよりashxのほうがいいです。 | ||||||||
|
投稿日時: 2006-07-24 13:23
burton999さん 回答本当にありがとうございます。 サンプルを実行してみましたが、使い方が良く解りません。 何をしたいか整理させて頂くと やりたい事は aspxがResponse.Writeしている情報を、あるホームページのindex.htmlで取得したい。 Ajaxはセキュリティ上制限があるので、ダメ。 http://localhost/test/text.htmlでは動く http://www.1111.com/test/text.htmlでは動かないのはセキュリティ上の制限だからと思っていいですか? ○aspxのソースの一部(http://www.xxxx.com/text.aspx) Response.Write("東京"); ○html(http://www.1111.com/test/text.html) <html> <head> <title></title> <script type="text/javascript" src="test.js"></script> </head> <form> <body onload="requestUrl('testID','POST','http://www.xxxx.com/text.aspx',true,on_loaded);"> <div id="testID" style="margin-left:20px;line-height:1em"></div><br> </body> </form> </html> ※testIDの「東京」と表示したい。 ○javascript(http://www.1111.com/test/text.js) function requestUrl( data , method , url , async ,callback ) { //XMLHttpRequestオブジェクト生成 var httpoj = createHttpRequest() //受信時に起動するイベント httpoj.onreadystatechange = function() { //readyState値は4で受信完了 if (httpoj.readyState==4) { //コールバック callback(httpoj, data, url) } } try { //open メソッド httpoj.open( method , url , async ) //send メソッド httpoj.send( data ) } catch(e) { if(typeof e == 'object') { alert(e.message); } else { alert(e); } } } 本当に、無知ですみませんが、ご教授お願い致します。 | ||||||||
|
投稿日時: 2006-07-24 13:31
これは既に実現できていますよね? aspxがResponse.Writeしている情報ってのは、URLですよね?(サンプルではyahoo) そのURLは取得できるが、JavaScriptからそのURLにリクエストを投げることはできない。(セキュリティ上の問題で) 本当の目的は、aspxがResponse.WriteしたURLからレスポンスを得ることではないのですか? それは、クライアントサイドではできないので、サーバーサイドでやってはどうかと提案しているわけです。 ぶっちゃけ、何がしたいのか私には分りませんが。。。 |