※ ChatGPTを利用し、要約された質問です(原文:ASP.NETでURLにマッピングされたして、プレーンテキスト返却モジュール)
ASP.NETでURLにマッピングされたプレーンテキスト返却モジュール
このQ&Aのポイント
Ajax学習中に気づいたことは、javascriptのrequestオブジェクトのopen()メソッドの第1引数は任意のテキストストリームを返せること。
質問の意図は、ASP.NETでURLにマッピングされたプレーンテキストを返すモジュールを作りたいこと。
現在の問題は、Visial Studio上でaspx + コードビハインドの構成で作成した場合、HTMLのコードが含まれてしまうこと。純粋なプレーンテキストを返すモジュールをどのように作るかがわからない。
ASP.NETでURLにマッピングされたして、プレーンテキスト返却モジュール
質問の意図。
現在、Ajaxの学習を深めています。
javascript側のrequestオブジェクトのopen()メソッドの
第1引数のURLは単なるテキストストリームを
返すものであれば何でもよいことがわかりました。
1) 単なる、CSVなどのテキストデータを静的にWebサイトに配置。
2) CGIでPerlや、Java Servletでresponse.println( 等で、
単なるテキストデータを返す。
上記(1),(2)のような別に画面とか、HTMLとか関係ないような
サーブレットのようなもの(JSPとかからまない)ものに
対応するURLを
javascript側のrequestオブジェクトのopen()メソッドの
第1引数として、
渡せばよいらしいです。
ところが、Visial Studio上で作成した。
aspx + コードビハインドの構成だと、
はじめから、aspx上に、HTMLのコードが入っています。
Visual Studio 上のC#, VBで、インテリセンス機能を効かせながら
作れるモジュールで、URLとマッピング可能なモジュールで、
かつ、
Java Servletの単なるresponse.println(
するだけのような純粋なプレーンテキストを吐き出すモジュールは
どのようにして、作るのでしょうか?
お礼
######################### ######################### ######################### ######################### ######################### ######################### ######################### ######################### ######################### ######################### ######################### ######################### ######################### ######################### ######################### ######################### ######################### ######################### ごめんなさい。もうここにしかかけないので目立つよ うに書きます。 No2.にて、ブラウザにて、URLを直接打ち込むと、真っ白になると書きますたが。 よく見ると単にURLのうち間違いでした。 ちゃんと、プレーンテキストかえって来ました。 なので、javascriptのほうにもちゃんと、返せました。 うまくいきました。 お騒がせしました。 ######################### ######################### ######################### ######################### ######################### ######################### ######################### ######################### #########################
補足
ご回答ありがとうございます。 それは、 Visual Studio上で可能でしょうか? <script runat=server形式で aspxにロジックをベタ書きする。やり方のイメージでの回答でしょうか? Visual Studio上で、新規でページを作成して、 ためして見ましたが。 クライアント側には、空文字列が帰ってきます。 Ajax側のXmlHttpRequestオブジェクトのopen( の引数としては、"GET"と"POST"の両方を試してみましたが。 いづれも結果は同じでした。 パッケージ名に、個人名や、企業名が載っているためソースコードのすべては 貼り付けできませんので、 一部抜粋して、貼り付けます ############################# ASPXのコードの概要 ############################# //団体名を連想するパッケージなので //消します。 <%@ Page language="c#" Codebehind="Test.aspx.cs" AutoEventWireup="false" Inherits="XXXXXXXXXXXXXXXXXXX.Test" %> <HTML> <HEAD> <title>Test</title> <meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1"> <meta name="CODE_LANGUAGE" Content="C#"> <meta name="vs_defaultClientScript" content="JavaScript"> <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5"> </HEAD> <body> <form id="Form1" method="post" runat="server"> </form> </body> </HTML> ############################# ASPX.CSのコードの概要 ############################# public class Test : System.Web.UI.Page { private void Page_Load(object sender, System.EventArgs e) { // // ページを初期化するユーザー コードをここに挿入します。 // this.Response.Write("Hellow World" + System.Environment.NewLine); this.Response.Write("d001,Dのデータです。15インチ液晶ディスプレイ" + System.Environment.NewLine); this.Response.Write("d002,Dのデータです。17インチ液晶ディスプレイ" + System.Environment.NewLine); this.Response.Write("d003,Dのデータです。19インチ液晶ディスプレイ" + System.Environment.NewLine); this.Response.Write("d004,Dのデータです。20インチ液晶ディスプレイ" + System.Environment.NewLine); // this.Response.Write("d005,Dのデータです。21インチ液晶ディスプレイ" + System.Environment.NewLine); this.Response.End(); } ############################# Ajaxのjavascript側でのコード概要、(通信部の共通ロジック・・・ ############################# // httpObj.open("GET", target_url, true); httpObj.open("POST", target_url, true); の両方で、ためして、駄目でした。 //引数で与えられたURLにHTTPリクエストを行い、指定された関数を実行 function httpPostRequest(target_url, functionReference) { alert("httpPostRequest()"); try { if(window.XMLHttpRequest) { httpObj = new XMLHttpRequest(); } else if(window.ActiveXObject) { httpObj = new ActiveXObject("Microsoft.XMLHTTP"); } else { httpObj = false; } } catch(e) { httpObj = false; } if(!httpObj) { httpObjGenerateFail(); } timerId = setInterval('timeoutCheck()', 1000); // httpObj.open("GET", target_url, true); httpObj.open("POST", target_url, true); httpObj.onreadystatechange = function() { if(httpObj.readyState == 4) { clearInterval(timerId); if(httpObj.status == 200) { functionReference(httpObj.responseText); } else { alert(httpObj.status + ':' + httpObj.statusText); return false; } } } //タイムアウト秒数の再設定 timeout_sec = timeout_sec_InitialValue; //リクエスト送信 httpObj.send(''); }