2017-05-31 1 views
1

J'ai essayé de différentes manières, mais je n'arrive pas à obtenir le bloc de succès à exécuter et je continue d'avoir la requête ajax retournée comme une erreur bien que l'URL soit correcte. Mon erreur dit "indéfini". Avez-vous des idées d'autre chose que je pourrais essayer? Nous vous remercions de votre aide.Pourquoi ma requête wikipedia opensearch ajax ne va-t-elle pas aboutir?

$(document).ready(function() { 
    $("form").submit(function() { 
    var searchTerm = $("#searchterm").val(); 
    var proxy = 'https://cors-anywhere.herokuapp.com/'; 
    var url = "https://en.wikipedia.org/w/api.php?action=opensearch&search=" + 
     searchTerm + "&format=json"; 

    $.ajax({ 
     url: proxy + url, 

     success: function(response) { 
     console.log(response); 
     }, 

     error: function(request, status, error) { 
     console.log(request.responseText); 
     console.log(url); 
     } 
    }); 
    }); 
}); 
+0

Avez-vous vraiment un saut de ligne entre '' et 'api.php action = ...'? C'est une erreur de syntaxe JavaScript – Phil

+0

Aussi, que dit l'erreur? – Phil

+0

Je ne sais pas. Ce fut juste une erreur de formatage de ma part en soumettant ma (toute première) question à Stackoverflow. Merci d'avoir porté cela à mon attention cependant! – allisonPlusPlus

Répondre

2

Dans votre soumettre gestionnaire d'événements ajouter:

e.preventDefault(); 

Parce que, par défaut, votre formulaire annule votre code et exécuter l'événement de soumettre votre formulaire.

Hope this vous aide:

$(document).ready(function() { 
 
    $("form").submit(function(e) { 
 
    e.preventDefault(); 
 
    var searchTerm = $("#searchterm").val(); 
 
    var proxy = 'https://cors-anywhere.herokuapp.com/'; 
 
    var url = "https://en.wikipedia.org/w/api.php?action=opensearch&search=" + 
 
     searchTerm + "&format=json"; 
 

 
    $.ajax({ 
 
     url: proxy + url, 
 

 
     success: function(response) { 
 
     console.log(response); 
 
     alert("ok"); 
 
     }, 
 

 
     error: function(request, status, error) { 
 
     console.log(request.responseText); 
 
     console.log(url); 
 
     } 
 
    }); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 

 
<form> 
 
    <input id="searchterm" type="text" /> 
 
    <button id="btnSend" type="submit">Send</button> 
 
</form>

+0

Cela a résolu mon problème! Merci beaucoup. : D – allisonPlusPlus

+0

Vous êtes les bienvenus. :) –