32540


Rubyプログラムからphpプログラムが置かれたURLにGETリクエストをして、そのなかのJavaScriptを実行したい。  
ブラウザから直接、パラメーターをつけてURLにアクセスするとJavaScriptが実行されるのですが、GETリクエストだと実行されない理由を教えてください。

Rubyプログラム

[code]

      uri = URI.parse("http://hoge.jp/hoge/hoge.php")
      uri.query = URI.encode_www_form(hoge: "fuga")
      Net::HTTP.get(uri)
    
[/code]

PHPプログラム

[code]

    <?php
        $person = rawurldecode($_GET['hoge']);
        $person = mb_convert_encoding($fuga, "UTF-8");
    ?>
    <script src="sample.js"></script>
    <script>
        var person = <?php echo json_encode($person, JSON_HEX_TAG | JSON_HEX_AMP | JSON_HEX_APOS | JSON_HEX_QUOT); ?>;
    //以下、JavaScriptの処理が続く
    </script>
    
[/code]


CC BY-SA 3.0
2017-02-09T18:29:00.257
32539
2017-02-09T18:55:54.023
18443
question
javascript php ruby
RubyプログラムからGETリクエストでPHPプログラム内のJavaScriptを実行したい


JavaScriptのコードを実行するのはブラウザだからです。ブラウザはGETリクエストを発行してその内容を受信し、受信したHTMLの中にJavaScriptのコードが含まれていれば(必要ならもう一度GETリクエストを発行してJavaScriptのコードを読み込んで)それを実行します。

それに対して、記載されているようなRubyのコードは「GETリクエストを発行してその内容を受信」するだけです。Ruby自体の中には受信したHTMLの中に含まれるJavaScriptのコードを実行するような機能はありませんので、あなたが書かれたようなコードでJavaScriptを実行することはできません。

Rubyからブラウザ(もしくはそれに相当するような「JavaScriptが実行できる何か」)を操作して「GETリクエストを発行してその内容を受信し、受信したHTMLの中にJavaScriptのコードが含まれていればそれを実行」させることが出来るかもしれませんが、記載されているようなRubyのコードとは全く違った形になるでしょう。


CC BY-SA 3.0
2017-02-09T18:55:54.023
32540
2017-02-09T18:55:54.023
13972
32539
answer