jquery ajax, call uitgevoerd, success: niet verwerkt
Ik wil dmv een ajax call data in mijn database zetten. Ik krijgt mijn code alleen niet werkend. Hier eerst een snippet van de code:
Ik zou verwachten dat ik bij clicken op de button 'opslaan' nu een alert zou krijgen met de inhoud van response. Ik zie echter niets. Wanneer ik in het network tab van firefox kijk zie ik dat de call wel uitgevoerd word en zie ik ook dat ik de juiste response terug krijg.
Ik ben redelijk nieuw met ajax, maar ik kan niet vinden waar ik de mist in ga. Ook niet met behulp van de documentatie.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$('#opslaan').click(function(){
var sRoepnummer = $('#roepnummer').val();
var sCsrf = $('input[name=csrf_test_name]').val();
var sText = $('#text').val();
var url = "http://www.***.nl/index.php/ajax/bericht/";
var data = {roepnummer: sRoepnummer, csrf_test_name: sCsrf, text: sText};
$.ajax({
url: url,
type: 'post',
data: data,
headers: {'X-Requested-With': 'XMLHttpRequest'},
dataType: 'json',
success: function(response){
alert(response);
}
});
})
var sRoepnummer = $('#roepnummer').val();
var sCsrf = $('input[name=csrf_test_name]').val();
var sText = $('#text').val();
var url = "http://www.***.nl/index.php/ajax/bericht/";
var data = {roepnummer: sRoepnummer, csrf_test_name: sCsrf, text: sText};
$.ajax({
url: url,
type: 'post',
data: data,
headers: {'X-Requested-With': 'XMLHttpRequest'},
dataType: 'json',
success: function(response){
alert(response);
}
});
})
Ik zou verwachten dat ik bij clicken op de button 'opslaan' nu een alert zou krijgen met de inhoud van response. Ik zie echter niets. Wanneer ik in het network tab van firefox kijk zie ik dat de call wel uitgevoerd word en zie ik ook dat ik de juiste response terug krijg.
Ik ben redelijk nieuw met ajax, maar ik kan niet vinden waar ik de mist in ga. Ook niet met behulp van de documentatie.
Als de call werkt, en je de juiste response (hopelijk weet je zeker dat die response klopt), en er geen database-actie plaatsvindt. Dan lijkt mij dat je PHP-script ergens niet goed werkt. Kan je dit niet droog uittesten? Ook zou je juist op zulke momenten een fout terug moeten sturen, zodat je een nette error kan tonen in je site.
Zorg wel dat je alle toeters en bellen van de foutafhandeling even aanzet.
Los van dit issue vraag ik me af of die URL wel klopt? Vaak met een URL-rewrite negeer je de index.php in de URL namelijk ;-)
Even een 'heads up'.....
Zorg wel dat je alle toeters en bellen van de foutafhandeling even aanzet.
Los van dit issue vraag ik me af of die URL wel klopt? Vaak met een URL-rewrite negeer je de index.php in de URL namelijk ;-)
Even een 'heads up'.....
Gewijzigd op 30/06/2020 14:40:32 door - Ariën -
Kijk in je netwerktab (onder de F12 functietoets) wat de response is van je PHP-script. Of zoals @Ariën voorstelt, inspecteer deze in afzondering.
Als je in JavaScript/AJAX aan het ontwikkelen slaat zou je ook moeten leren hoe je dit soort zaken debugged.
Als je in JavaScript/AJAX aan het ontwikkelen slaat zou je ook moeten leren hoe je dit soort zaken debugged.
Kun je de code van je php file eens tonen waar de data verwerkt wordt en hoe je de response terugstuurt?
Gewijzigd op 30/06/2020 15:24:41 door Jack Maessen
De response die ik terug krijg op het netwerktab van firefox is precies wat ik verwacht.
De call zelf word juist uitgevoerd. Op dit moment geef ik hard-coded in het php file die aangeroepen word als echo de string "Response van bericht". In het netwerktab zie ik ook dat dit de response is die ik terug krijg. De alert() bij success: word alleen niet uitgevoerd.
De call zelf word juist uitgevoerd. Op dit moment geef ik hard-coded in het php file die aangeroepen word als echo de string "Response van bericht". In het netwerktab zie ik ook dat dit de response is die ik terug krijg. De alert() bij success: word alleen niet uitgevoerd.
Geef je dan geen 500-header door?
@Arien: nee, ik echo voor nu enkel die string.
Overigens, wanneer ik onderstaande code gebruik krijg ik de alert wel, met de juiste response (de geechode string). Dat doet mij denken dat er ergens in mijn javascript/jquery iets niet pluis zit.
Overigens, wanneer ik onderstaande code gebruik krijg ik de alert wel, met de juiste response (de geechode string). Dat doet mij denken dat er ergens in mijn javascript/jquery iets niet pluis zit.
Je gebruikt het volgende:
dataType: 'json'
Dit wil zeggen dat de geretourneerde data van het type jsonis dient te zijn.
Dus in het PHP-bestand wat je aanroept zal zoiets moeten staan:
Waarschijnlijk gaat je $.post wel goed omdat daar "geraden" wordt wat het type is van response, zonder dat je dit dus expliciet instelt.
dataType: 'json'
Dit wil zeggen dat de geretourneerde data van het type json
Dus in het PHP-bestand wat je aanroept zal zoiets moeten staan:
Code (php)
Waarschijnlijk gaat je $.post wel goed omdat daar "geraden" wordt wat het type is van response, zonder dat je dit dus expliciet instelt.
Gewijzigd op 01/07/2020 18:03:30 door Thomas van den Heuvel
Thomas, bedankt maar weer! Dit was inderdaad de oplossing.




