cari

Rumah  >  Soal Jawab  >  teks badan

Tajuk boleh ditulis semula sebagai: Dalam aplikasi sisi pelayan (seperti PHP, Ruby, Python, dll.), adakah mungkin untuk membaca bahagian yang dicincang URL?

<p>Andaikan URL ialah: </p> <pre class="brush:php;toolbar:false;">www.example.com/?val=1#part2</pre> <p>PHP boleh menggunakan tatasusunan GET untuk membaca pembolehubah permintaan <code>val1</code>. </p> <p>Adakah nilai cincang<kod>bahagian2</kod> Atau bolehkah ia hanya dikendalikan oleh penyemak imbas dan JavaScript? </p>
P粉145543872P粉145543872502 hari yang lalu485

membalas semua(2)saya akan balas

  • P粉724256860

    P粉7242568602023-08-21 15:01:41

    Ujian mudah, lawati http://localhost:8000/hello?foo=bar#this-is-not-sent-to-server

    python -c "import SimpleHTTPServer;SimpleHTTPServer.test()"
    Serving HTTP on 0.0.0.0 port 8000 ...
    localhost - - [02/Jun/2009 12:48:47] code 404, message File not found
    localhost - - [02/Jun/2009 12:48:47] "GET /hello?foo=bar HTTP/1.1" 404 -

    Permintaan yang diterima oleh pelayan tidak mengandungi apa yang mengikuti simbol # - apa yang mengikuti simbol # hanyalah carian utama pada klien.

    Anda boleh menggunakan javascript untuk mencari nama sauh yang digunakan dalam URL, contohnya:

    <script>alert(window.location.hash);</script>

    Jika anda sudah mempunyai rentetan URL yang mengandungi serpihan, fungsi parse_url() dalam PHP boleh digunakan (http://codepad.org/BDqjtXix):

    <?
    echo parse_url("http://foo?bar#fizzbuzz",PHP_URL_FRAGMENT);
    ?>
    
    输出:fizzbuzz

    Tetapi saya tidak fikir PHP akan menerima maklumat serpihan kerana ia hanya wujud di bahagian pelanggan.

    balas
    0
  • P粉360266095

    P粉3602660952023-08-21 14:50:26

    Masalah utama ialah penyemak imbas tidak akan menghantar permintaan dengan bahagian serpihan. Bahagian serpihan dihuraikan terus dalam penyemak imbas. Oleh itu, ia boleh diakses melalui JavaScript.

    Apa pun, anda boleh menggunakan parse_url() untuk menghuraikan URL ke bahagiannya, termasuk bahagian serpihan, tetapi jelas sekali itu bukan kes anda.

    balas
    0
  • Batalbalas