2010-06-04 8 views
0

JQuery의 Ajax 함수, 특히 url 매개 변수에 대한 간단한 질문입니다.JQuery Ajax Url 질문

내 디렉토리 구조는 그래서 같다 :

contact.html 
process.php 

- elements 
    - js 
     - jquery.js 
     - library.js 

코드 아래

... 

// Post with Ajax 
$.ajax 
({ 
    type : 'POST', 
    url : '../../process.php', 
    data : fulldata, 
success: function() 
{ 
    $('#contact_form #placeholder').html("<div id='success_box'><h3>Message Recieved</h3><p>We will be in touch very soon!</p></div>"); 
    $('#contact_form form').hide(); 
}, 
error: function(xhr) 
{ 
    alert('Request Status: ' + xhr.status + ' Status Text: ' + xhr.statusText + ' ' + xhr.responseText); 
} 
}); 
return false; 
내가 양식을 제출

모든 시간, 그것은 내가 생각하는 것이 오류를 뱉어 url. Ajax를 사용하여 process.php 파일을 올바르게 지정하려면 어떻게해야합니까?

감사

답변

3

당신의 스크립트는 process.php 페이지와 같은 수준 페이지에서 실행됩니다. js 폴더의 컨텍스트에서 실행되지 않습니다. 그러므로 당신은 당신이 사용하는 URL이 상대적 응용 프로그램

"/process.php"또는 "process.php"

3

의 루트를 가리킬 수 있습니다. JS 위치와 관련이 없으며 실행중인 페이지와 관련이 있습니다.

target.php 
page1.php 
js 
--myscript.js 
other 
--page2.php 

내 JS는 "target.php"의 URL이 있다면 그것은 page1.php에서 일하는 것이하지만 페이지 2의 같은 디렉토리에 아니기 때문에 page2.php NOT : 그래서 당신은이 구조를 말한다.

멋진 가상 호스트 등을 사용하지 않는 경우, 예를 들어 도메인의 루트 (예 : www.example.com/page1.php)에서 작업하고있는 경우 루트를 기준으로 URL을 만들 수 있습니다. 귀하의 경우 예를 들어

:

URL: "/process.php" 

첫 번째 슬래시 상관없이 당신이 어떤 페이지 출발점으로 웹 사이트의 루트를 사용하지 의미합니다.

또한 firebug를 통해 URL이 문제를 일으키는 지 여부를 알 수 있습니다. NET 탭으로 이동하여 XHR을 확인하십시오. 404가 발견되지 않으면 URL에서 문제가 발생하고 스크립트 오류가 발생하는 경우 URL이 명확하지 않습니다.