Được gửi bởi
trunghieuhf
ý mình là ở đây không cho phép thực thi file post.php từ ngoài server ý.
Thường là dùng define tại index.php rồi check defined tại post.php, nhưng ở đây gọi post.php qua ajax nên ko check được defined.
HTML form thông thường bạn submit tới file nào thì form gửi = ajax cũng nên submit tới file đó. Nếu file index.php được dùng để xử lý form thông thường thì bạn cũng dùng chính nó để xử lý form gửi = ajax.
Được gửi bởi
trunghieuhf
Dùng $_SERVER['HTTP_X_REQUESTED_WITH']so sánh với 'XMLHttpRequest' thì có vẻ ok, nhưng mình chưa hiểu là trong trường hợp hợp nào thì sẽ không đúng.
Chẳng hạn khi dùng các hàm gửi ajax request của jquery framework thì nó sẽ gửi kèm theo X-Requested-With header. Nhưng nếu bạn tự viết hàm gửi ajax, có thể bạn không cho nó gửi X-Requested-With header.
Được gửi bởi
trunghieuhf
Bạn có nói "Tuy nhiên để chắc chắn hơn, vì ko phải javascript framework nào cũng gửi "X-Requested-With" header trong các ajax request của mình, bạn có thể thêm vào các ajax request một biến để php script có thể phân biệt giữa request = ajax & request thông thường", mình không hiểu lắm, vì truy vấn của mình là qua ajax rồi mà. Mong giải thích thêm.
Chẳng hạn trong file post.php bạn sẽ check xem request đc gửi bởi ajax hay thao tác thông thường của ng dùng như sau:
Code:
<?php
$is_ajax_request = isset($_GET['ajax']) ? true : false;
// $is_ajax_request có giá trị true nếu là request bởi ajax, false nếu ko phải. Dựa vào biến này để xử lý tiếp...
Bookmarks