Permintaan HTTP: GET lwn. POST
Dua kaedah permintaan-tindak balas yang biasa di sisi klien dan pelayan ialah: GET dan POST.
GET - Minta data daripada sumber yang ditentukan POST - Serahkan data untuk diproses kepada sumber yang ditentukan
GET pada asasnya digunakan untuk mendapatkan (mendapatkan semula) data daripada pelayan. Nota: Kaedah GET mungkin mengembalikan data cache.
POST juga boleh digunakan untuk mendapatkan data daripada pelayan. Walau bagaimanapun, kaedah POST tidak cache data dan sering digunakan untuk menghantar data bersama-sama dengan permintaan.
Perbezaan antara Get dan Post
Get method:
Guna get kaedah Data mudah boleh dihantar, tetapi saiznya biasanya terhad kepada 1KB Data dilampirkan pada URL dan dihantar (penghantaran tajuk HTTP Maksudnya, penyemak imbas menambahkan setiap elemen medan borang dan datanya ke baris permintaan). dalam format parameter URL di belakang laluan sumber. Perkara yang paling penting ialah ia akan dicache oleh penyemak imbas pelanggan, jadi orang lain boleh membaca data pelanggan, seperti nombor akaun dan kata laluan, daripada sejarah penyemak imbas. Oleh itu, dalam beberapa kes, kaedah dapatkan boleh menyebabkan isu keselamatan yang serius.
Kaedah siaran:
Apabila menggunakan kaedah POST, penyemak imbas menghantar setiap elemen medan borang dan datanya sebagai kandungan entiti HTTP mesej Kepada pelayan web dan bukannya menghantarnya sebagai parameter alamat URL, jumlah data yang dihantar menggunakan POST jauh lebih besar daripada yang dihantar menggunakan GET.
Ringkasnya, kaedah GET menghantar sejumlah kecil data, mempunyai kecekapan pemprosesan yang tinggi, keselamatan yang rendah, dan akan dicache, manakala yang sebaliknya berlaku untuk POST.
Kaedah $.get() Kaedah
$.get() meminta data daripada pelayan melalui permintaan HTTP GET .
Sintaks:
$.get(URL,panggilan balik);
URL yang Diperlukan parameter menentukan URL yang anda ingin minta.
Parameter panggil balik pilihan ialah nama fungsi yang akan dilaksanakan selepas permintaan berjaya.
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php中文网(php.cn)</title> <script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js"></script> <script> $(document).ready(function(){ $("button").click(function(){ $.get("/try/ajax/demo_test.php",function(data,status){ //需要引入demo_test.php文件 alert("数据: " + data + "\n状态: " + status); }); }); }); </script> </head> <body> <button>发送一个GET 请求并获取返回结果</button> </body> </html>
Parameter pertama $.get() ialah URL yang ingin kami minta ("demo_test.php").
Parameter kedua ialah fungsi panggil balik. Parameter panggil balik pertama menyimpan kandungan halaman yang diminta, dan parameter panggil balik kedua menyimpan status permintaan.
Fail PHP ini ("demo_test.php") kelihatan seperti ini:
<?php echo "这是个从PHP文件中读取的数据"; ?>
Kaedah $.post()
Kaedah $.post() meminta data daripada pelayan melalui permintaan HTTP POST.
Sintaks:
$.post(URL,data,panggilan balik);
Parameter URL yang diperlukan Nyatakan URL yang anda ingin minta.
Parameter data pilihan menentukan data yang akan dihantar bersama permintaan.
Parameter panggil balik pilihan ialah nama fungsi yang akan dilaksanakan selepas permintaan berjaya.
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php中文网(php.cn)</title> <script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js"></script> <script> $(document).ready(function(){ $("button").click(function(){ $.post("/try/ajax/demo_test_post.php",{ name:"php中文网", url:"http://www.php.cn" }, function(data,status){ alert("数据: \n" + data + "\n状态: " + status); }); }); }); </script> </head> <body> <button>发送一个 HTTP POST 请求页面并获取返回内容</button> </body> </html>
Parameter pertama untuk $.post() ialah URL yang ingin kami minta ("demo_test_post.php").
Kemudian kami menghantar data bersama permintaan (nama dan bandar).
Skrip PHP dalam "demo_test_post.php" membaca parameter ini, memprosesnya dan mengembalikan hasilnya.
Parameter ketiga ialah fungsi panggil balik. Parameter panggil balik pertama menyimpan kandungan halaman yang diminta, manakala parameter kedua menyimpan status permintaan.
Fail PHP ini ("demo_test_post.php") kelihatan seperti ini:
<?php $name = isset($_POST['name']) ? htmlspecialchars($_POST['name']) : ''; $city = isset($_POST['url']) ? htmlspecialchars($_POST['url']) : ''; echo '网站名: ' . $name; echo "\n"; echo 'URL 地址: ' .$city; ?>
Contoh $.post() yang lengkap:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php中文网(php.cn)</title> <script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js"></script> <script type="text/javascript"> function checkname(){ if($('#name').val() == ""){ $('#msg').html("please enter the name!"); $('#name').focus; return false; } if($('#address').val() == ""){ $('#msg').html("please enter the address!"); $('#address').focus; return false; } ajax_post(); } function ajax_post(){ $.post("text.php",{name:$('#name').val(),address:$('#address').val()}, function(data){ //$('#msg').html("please enter the name!"); //alert(data); $('#msg').html(data); }, "text"); } </script> </head> <body> <form id="ajaxform" name="ajaxform" method="post" action="text.php"> <p> name<input type="text" name="name" id="name"/> </p> <p> address<input type="text" name="address" id="address"/> </p> <p id="msg"></p> <p> <input name="Submit" type="button" value="submit" onclick="return checkname()"/> </p> </form> </body> </html>
Buat fail text.php:
<?php $name = $_POST["name"]; $address = $_POST["address"]; echo $name."<br>"; echo $address."<br>"; echo "success"; ?>