php驗證請求頁面來源:
- if( $_server['http_x_requested_with'] == 'xmlhttprequest' ) {
- echo 'ajax';
- } else {
- echo 'normal';
- }
jquery內部實現ajax的時候,已經加入了標識,jquery源碼中是這樣的:
xhr.setrequestheader("x-requested-with", "xmlhttprequest");
所以,在php中可以通過http_x_requested_with來判斷,不需要另外實現,下面看原理:在發送ajax請求的時候,我們可以通過xmlhttprequest這個對象,創建自定義的header頭信息,如果您使用的是原生的ajax方法,也就是未使用jquery或者其他js框架包裝的ajax方法,那么代碼如下:
xmlhttprequest.setrequestheader("request_type","ajax");
通過jquery的$.ajax()方法,可以輕松地在發送ajax請求之前,創建我們自定義的header頭信息.
- $.ajax({
- type: "get",
- url: base_url +
- 'php_check_ajax_request/get_user_list.html',
- beforesend: function (xmlhttprequest) {
- xmlhttprequest.setrequestheader("request_type","ajax");
- },
- success: function(data){
- $("#user_list").html(data);
- $tip.hide();
- $button.attr('disabled',true);
- }
- });
在php獲取時:
- if (isset($_server['http_request_type']) && $_server['http_request_type']
- == "ajax"){//ajax提交
- }else{//非ajax提交
- }
新聞熱點
疑難解答