• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Ajaxのデバッグ方法)

Ajaxのデバッグ方法

このQ&Aのポイント
  • Ajaxのデバッグ方法:Google Chrome Developer Toolsを利用しよう
  • Google Chrome Developer Toolsを使ってJavascriptのコードを書き換えることはできるのか?
  • Google Chrome Developer ToolsでHTMLやCSSは書き換えられるが、Javascriptの変数やコードは書き換えられない

質問者が選んだベストアンサー

  • ベストアンサー
  • tracer
  • ベストアンサー率41% (255/621)
回答No.1

chromeに限らず、どのブラウザでもjavascriptを使って自由に読み書きできます。 また、どんなに難読化したとしても解析されますし、今時のブラウザならスクリプトの整形機能もついてます。 ブラウザが実行するjavascriptとはそういうものです。 従って、セキュリティ的に好ましくないものをjavascriptに隠蔽すべきではありません。 当然、ajaxの通信内容もすべて見ることができます。 変数名やサーバーに投げているget情報、post 情報などすべてです。 従って、サーバー側でのセキュリティ対策が重要になります。 ただし、誤解のないように念のため付け加えると、webサーバーに保存してあるjavascript(本体)が書き換えられるわけでなく、読み書きできるのはあくまでユーザーがロード(ダウンロード)したファイルです。

noname#245598
質問者

お礼

お返事有難うございます。 とても勉強になります。 >どんなに難読化したとしても解析されますし、今時のブラウザならスクリプトの整形機能もついてます。 つい先ほど、chromeを操作していてボタンを押すだけで整形できることにびっくりしました。(今更ですが。。。) ただ、難読化することでファイル容量が節約できるので、難読化という意味合いではなく軽量化ってことで、難読化の作業も実施していく予定です。 >ブラウザが実行するjavascriptとはそういうものです。 たぶん自分はわかったようでちゃんと理解できていないから、今回の質問に至ってしまったんですね><ノ。 >変数名やサーバーに投げているget情報、post 情報などすべてです これはPHPでアプリ作っていた時に確認してきたので知っていましたb。 >サーバー側でのセキュリティ対策が重要になります。 こういうアドバイスを頂けた事に自分がすべき事が見えてきました。有難うございます。 >webサーバーに保存してあるjavascript(本体)が書き換えられるわけでなく、読み書きできるのはあくまでユーザーがロード(ダウンロード)したファイルです。 クライアントサイド、サーバーサイド、わかったつもりでも、新しいことを実装しようと思うとこれらプログラムの仕組みについてちゃんと理解していないんだなと改めて認識しました。 日曜プログラマーですけど、精進します。 アドバイス有難うございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • VBScriptのデバッグ方法について教えて下さい。

    VBScriptのデバッグ方法について教えて下さい。 ちょっと特殊なことをしている?スクリプトなのですがユーザーインターフェースにHTMLを使っています。 HTMLの上にいくつかボタンが配置されているのですがそれぞれに対応した処理のスクリプトがあります。 (たとえばHTML上にボタンが5個あるとしてスクリプトも5個あります) ボタン押下後にHTMLのhiddenとかの値を見分けて動かすプログラムを判別しているようです。 それなのでスクリプト単体をダブルクリックしても動かずデバッグも非常にしにくいのです。 一応変数の値をMsgBoxなどで見ていますが非常に大変でして・・・ いいデバッグ方法はないでしょうか? 一応Visual Studio 2005 standard Visual Web Developer 2008 Express はPCに入ってはいます・・・

  • Ajaxについて教えてください。(定義と実装方法について)

    Ajaxについて教えてください。 (定義について) http://www.atmarkit.co.jp/fwcr/rensai/imasara03/imasara03_1.html (サンプル集) http://jsajax.com/default.aspx 【定義について】 >>Ajaxは略語で、正式名称は「Asynchronous JavaScript + XML」となります。Asynchronousは「非同期」という意味 とされいるようなのです。他にも調べてみると、 「Javascriptを使い,Webページとは非同期(Asynchronous)にXML形式(もしくはテキスト形式)のデータ通信を行う手法」といった風にかかれています。 この「Webページとは非同期」という部分がわからないのですが、どういったものを指しているのでしょうか? 【実践方法について】  Ajaxの実装はどういった手順で行うものなのでしょうか?  参考でみたホームページで、ライトボックスをみて感動したので、早速使ってみたいと思いました。いざAjaxサンプルページに載っている、ライトボックスのコードをコピー&ペーストで、自分のPC上で試してみたのですが、動かず悩んでいます。(汗)  調べていくうちに、ライブラリが必要なようなのですが、どのように実装することで、ライトボックスは使用できるようになるのでしょうか?    AjaxサンプルのURLにjQueryを使い倒せ!ということから、jQueryという、Ajax用のライブラリがあるのでしょうか?

    • ベストアンサー
    • AJAX
  • JQueryでのAJAXで困ってます

    最近AJAXを勉強しようと思い、JQueryに手を出しました。 JQueryで画面遷移無しでdivで作ったメニューを選択して内容を指定したdivに表示させようと思っているのですが、 JQueryでのloadの動作がブラウザの違いで異なる動きをするので困ってます。 IEでは内容が表示されて、新しく表示した部分のJavaScriptが正しく動くのでいいのですが、 Firefox、Operaでは新しく表示した部分のJavaScriptが動作しません。 Chromeでは新しく表示した部分のCSSでさえ適用されません。 IE以外でも正しく動作させるにはどうしたらいいでしょうか? ご回答、よろしくお願いします。

    • ベストアンサー
    • AJAX
  • Ajaxでのページングについてなのですが...

    現在AjaxにてWebアプリを作成しております。 Webサービスからデータを取得して ブラウザに表示させることはできたのですが、 ページングで悩んでおります。 Webサービスで返ってくるデータは1ページ10件です。 検索フォームからある商品を検索して、返ってきたXMLタグにトータル件数、ページ数があります。 <TotalResults>249</TotalResults> //トータル件数 <TotalPages>25</TotalPages> //ページ数 データ取得の際にpageというパラメーターにページ番号を渡してやれば、 表示できることは分かるのですが、この先に進めません。(恥) Ajaxといいますか、javascriptでのページングはどのようにすればよろしいのでしょうか? 「Google」または、こちらの「教えて!goo」様のようなページングが理想なのですが、 何卒ご指導よろしくお願いいたします。 「追記」 また、上記の25ページ分のデータを一度に取得して表示させることはできるのでしょうか?

  • Ajaxでウインドウ出力について

    CGI上で、HTMLのコードを書いて、WEBページを出力(表示)することが出来ますが、それと同じようなことが、Ajax(Jqueryを使っています)で出来ませんでしょうか。 CGIを使ってやろうとしていたのですが、同じページでFormタグを多用しており、CGI以外の方法でページ出力をしようと思います。 HTMLからOnClickで値をAjaxに渡して、データベースとやりとりをし、Ajaxに値を戻してそれを元にページを作成して出力をさせたいのです。(別ウインドウを立ち上げで) このようなことは出来ますでしょうか。 また、出来るようでしたらどうやってプログラムを作成すればいいでしょうか。 教えてください。よろしくお願いいたします。

    • ベストアンサー
    • AJAX
  • jQuery利用コードのjs部分のデバッグ

    こちらのページを参考にデバッグをしたいのですがうまくいきません ▽Chromeでjavascriptデバッグ!まず半歩♪   http://www.slideshare.net/yuka2py/chromejavascript ■コード ・jQuery利用 ■困っていること ・「ブレークポイントを設定」して、「ステップオーバー」しているのですが、延々「ローカルに保存したjquery.js」の中を移動していくだけで、そこから抜け出すことができません ※jQuery利用コードのjs部分のデバッグをしたいのであって、jQueryのコード本体をデバッグしたいわけではありません ■知りたいこと ・「jQueryのコード本体(ローカルに保存したjquery.js)」を飛ばして、「ステップオーバー」していくにはどうすれば良いでしょうか?

  • Ajaxで変数が受け取れない

    function chk() { var up_file = false; httpObj = createXMLHttpRequest(displayData); if (httpObj) { httpObj.open("POST","file_chk.php",true); httpObj.setRequestHeader("content-type", "application/x-www-form-urlencoded;charset=UTF-8"); httpObj.send("chk=(ファイル名)"); } function displayData() { if ((httpObj.readyState == 4) && (httpObj.status == 200)) { if (httpObj.responseText == "true") { up_file = true; } } } alert(up_file); } } 以上のようなソースのJavaScriptプログラムがあります。Ajaxを使ったもので、phpのプログラムでファイルの有無を調べるというものです。 まず最初に有無の確認用の変数up_fileを設定し、phpを使ったAjaxで検査、Ajaxが作動すると関数displayData()が実行され、ファイルがあればup_fileの値を初期値falseからtrueへ上書きするというものです。 ところがファイルがちゃんとあるのにup_fileの中身はflaseのままなのです。ソースにalertを書いた場所でfalseが返ってきます。その前のスコープ内に入れると、Ajaxで問い合わせるので数回falseが出た後最終的にtrueになります。なのにその1つ後のスコープ内、つまり関数displayData()を抜けた大元の関数chk()内に置くとfalseになってしまうのです。trueにする時varを使ってないのでグローバル変数の書き換えすら可能なはずなのですが・・・。 なぜ変数up_fileの上書きが出来ないのでしょうか?

  • Ajaxで外部サイトの取り込み

    Ajax非同期通信、例えばJQueryの以下の様にyour-web-siteをページ内に取り込んだ場合、cssやjavascriptのパスが相対パスで指定されているのが原因で正しく表示されない場合があります。通常のhtmlで静的に取り込む場合は<iframe>で取り込むか、<base href="...">などを用いて相対パスを絶対パスに変換するのですが、Ajaxで動的に取り込む場合のうまい方法がわかりません。 よいアイデアや方法があればご教示ください。 --- javascript---- $(function (){ $("#a").load("http://your-web-site/"); }); ---- html -------- <div id="a"></div> ------------------

  • Ajaxのエンコードで

    私はshift_JISで作成したCGIのページがあるのですが、 Ajaxを導入しようとしたときに、Ajaxというか Javascriptでは、utf-8しか認識しないととあるサイトに書いてあったのですが、 そのCGIのページをphpに変更するにはものすごく多大な時間が 必要になってしまうんですが、CGIをutf-8仕様にするのも大変です AjaxでShift_JISに変換するような事はできませんでしょうか? http://javascriptist.net/ref_prototype/ajax.periodicalupdater.html のサイトに乗っている <script type="text/javascript" src="/js/prototype.js"></script> <script type="text/javascript"> var myajax; function execute() { myajax = new Ajax.PeriodicalUpdater( "container", "./member.cgi", { "method": "get", "parameters": "id=$id", frequency: 5, // 5秒ごとに実行 onSuccess: function(request) { // 成功時の処理を記述 // alert('成功しました'); // jsonの値を処理する場合↓↓ // var json; // eval("json="+request.responseText); // ↓IEでもキャッシュを読み込まずに毎回リモート接続を実行するためのコード(パラメータの書き換え) var str = myajax.options.parameters; var hash = str.parseQuery(); hash["ajax_request_id"] = Math.random(); hash = $H(hash); myajax.options.parameters = hash.toQueryString(); }, onComplete: function(request) { // 完了時の処理を記述 // alert('読み込みが完了しました'); // jsonの値を処理する場合↓↓ // var json; // eval("json="+request.responseText); }, onFailure: function(request) { alert('読み込みに失敗しました'); }, onException: function (request) { alert('読み込み中にエラーが発生しました'); } } ); } </script> を使用して自動更新をしようと思っているのですが

  • ajaxでのデータの送信の質問です

    ajaxでjavascriptからphpに2つの変数を送りたいのです。 xmlReq.open("GET","main.php?isbn=" + encodeURI(data1),true); xmlReq.send(null); 現在このようにデータを送っているのですがdata2の値も同時にmain.phpに送りたいのです。 当方初心者なので実例で示していただけると嬉しいです。 回答よろしくお願いいたします。

    • ベストアンサー
    • AJAX