2010-06-04 8 views
0

Juste une petite question sur la fonction Ajax de JQuery, plus précisément le paramètre url.JQuery Ajax Url question

Ma structure de répertoire est comme ceci:

contact.html 
process.php 

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

code ci-dessous

... 

// 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; 

Chaque fois que je soumets la forme, il recrache une erreur, que je pense est le url. Comment puis-je correctement spécifier le fichier process.php à soumettre avec Ajax?

Merci

Répondre

3

Votre script sera en cours d'exécution dans une page au même niveau que la page valider.php. il ne fonctionne pas dans le contexte du dossier js. Par conséquent, vous pouvez pointer à la racine de votre application

« /process.php » ou « process.php »

3

L'URL que vous utilisez est relatif. Ce ne sera pas relatif à l'emplacement JS, mais plutôt à la page sur laquelle vous l'exécutez. Alors que vous avez cette structure:

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

Si mon JS avait l'URL de « target.php » il travaillerait sur page1.php, mais pas page2.php car il est pas dans le même répertoire de page2.

Si vous n'utilisez pas d'hôtes virtuels sophistiqués ou quelque chose, a.k.a que vous utilisez à la racine d'un domaine (par exemple www.example.com/page1.php), vous pouvez créer votre URL par rapport à la racine.

Par exemple, dans votre cas:

URL: "/process.php" 

La première barre oblique signifie utiliser la racine du site comme lieu de départ, peu importe quelle page vous êtes.

En outre, get firebug, il peut vous dire si l'URL est à l'origine du problème: allez dans l'onglet NET et regardez vos XHR. Si c'est un 404 introuvable, l'URL est à l'origine du problème et si vous obtenez une erreur de script, ce n'est certainement pas l'URL