2009-09-26 6 views

답변

6

로드가있는 GET 매개 변수를 보낼 수 없습니까?

즉 :

정상 스크립트로드

에 대한

jquery=1 //(for load) 

jquery=2 //(for the 'low-level' ajax call) 

다른 값은 다음 당신은 다음에 무엇을 결정하는 PHP 스크립트 거래를 할 수 있습니다. $_GET['jquery']

+0

을 사용할 수 있습니다. $ ("#의 actualcontent")를로드 ($ (이). attr ("href")); 추가 변수/GET 매개 변수를 어떻게 추가합니까? – Tom

+0

$ ("# actualcontent"). load ($ (this) .attr ("href") + '?jquery = 1 '); –

+0

우수! 완벽 해. – Tom

6

값을 올바르게 읽으면 jQuery의 AJAX 함수는 XMLHttpRequest 값을 사용하여 X-Requested-With 헤더를 보냅니다.

14

서버에서 수신중인 HTTP 헤더를 살펴볼 수 있습니다. 예를 들어

,이 전 페이지가 생각해 봅시다 :

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.js"></script> 
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/jquery-ui.js"></script> 
</head> 
<body> 
    <div id="test"></div> 
    <script type="text/javascript"> 
     $('#test').load('temp.php'); 
    </script> 
</body> 
</html> 

그리고 temp.php 스크립트가있는 경우에만이 :

<?php 
var_dump($_SERVER); 

die; 
load는, "테스트" <div>을 실행


$_SERVER의 덤프를 포함합니다. 그것은 다른 것들 사이에,이 포함됩니다 :

'HTTP_X_REQUESTED_WITH' => string 'XMLHttpRequest' (length=14) 

XMLHttpRequest는 Ajax 요청을하는 데 사용되는 개체입니다. 이와

if (isset($_SERVER['HTTP_X_REQUESTED_WITH']) 
    && $_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest') { 
    echo "Ajax"; 
} else { 
    echo "Not Ajax"; 
} 

, 당신이 당신의 페이지가 "보통"이라고 여부를 감지 할 수 있습니다


이 요청이 이런 일에, 아약스 쿼리를 통해 만들어진 경우를 감지 할 수 있어야 의미 , 또는 Ajax 요청을 통해, 레이아웃을 포함해야하는지 아닌지를 결정해야한다.


BTW : 예를 들어 젠드 프레임 워크에서 사용하는 솔루션 인 정확히 detect Ajax requests입니다. 당신이 젠드 프레임 워크를 사용하는 경우

+0

첫 줄은 다음과 같이 단순화 할 수 있습니다. @ $ _ SERVER [ 'HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest') { –

+3

@ Sbm007 : @ 연산자로 오류를 숨기고 싶지 않을 때만 사용하십시오. trully 필요 - 여기에 $ _SERVER에 해당 항목이 있는지, 그 값이 원하는지, 그리고 이것이 정확히 isset이고 두 번째 조건이 무엇인지 테스트하고 싶습니다. –

+0

오, 그럼 충분히 알았어. 나는 그들이 똑같은 줄 알았다. 감사. –

관련 문제