Je me sens idiot de ne pas pouvoir résoudre cela, mais je continue à avoir ma demande de publication comme non définie sur la ligne $ ('# input'). val (). Quelqu'un peut-il m'aider à résoudre ce problème?
<html>
<head>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
let sr = $("#input").val();
$(document).ready(function(){
$("button").click(function(){
$.post("http://localhost:8080/", {subreddit: sr}, function(data, status){
alert("Data: " + data + "\nStatus: " + status);
});
});
});
</script>
</head>
<body>
<div id='content' style="height:100%, width:100%">
<input id='input' type="text" placeholder='enter subreddit'/>
<button>Search</button>
</form>
</div>
</body>
</html>
3 Réponses :
C'est parce que cette partie de votre script est en cours d'exécution avant le chargement de votre DOM. Déplacez-le dans votre $(document).ready():
$(document).ready(function() {
let sr = $("#input").val();
//Rest of your code
});
La partie let sr = $ ("# input"). val (); de votre script doit s'exécuter lorsque vous cliquez sur le bouton.
Déplacez-la dans le gestionnaire de clics comme ceci:
$(document).ready(function() {
$("button").click(function(){
let sr = $("#input").val();
$.post("http://localhost:8080/", {subreddit: sr}, function(data, status){
alert("Data: " + data + "\nStatus: " + status);
});
});
});
Je l'ai déplacé dans le gestionnaire de clics, mais il retourne toujours undefined.
Mon problème concernait en fait le backend. Il a continué à retourner indéfini parce que je n'ai pas appelé la méthode .toString (). Merci pour l'aide.