Toon posts:

ongevraagde 301 bij ajax post

Pagina: 1
Acties:

Vraag


  • shakkie
  • Registratie: Augustus 2001
  • Laatst online: 29-05 14:29
Sinds een verhuizing van server a naar server b (ongewenst overigens) ondervind ik wat problemen in een zelfgemaakt CRM systeem. Vrijwel de meeste problematiek is ondervangen maar 1 probleem blijft toch hardnekkig de kop opsteken.

Mijn url structuur is : (domein)/index.php/(classnaam)/functie/parameters
Dit werkt prima behalve wanneer ik een post doe via Jquery.
Voorbeeld :
JavaScript:
1
2
3
4
5
6
7
8
$.ajax({
                          type: "POST",
                          url: "http://www.(DOMEIN).nl/M/index.php/configurator/savePdf",
                          data: { data:html, enquete : $(".export").attr("id") },
                          success: function(){
                              $(".status").html('<b>Voltooid</b> Opgeslagen bij de klantkaart.');
                          }
                        });

Dan vindt er het volgende plaats:
Er wordt eerst een GET request uitgevoerd en hieruit volgt een 301. De url is aangepast naar http://(DOMEIN)/M/configurator/savePDF en vervolgens geeft het daadwerkelijk POST request een 404. Dit is natuurlijk te verwachten gezien het verdwijnen van index.php maar begrijp niet goed waar dit gedrag vandaan komt. Ik maak geen gebruik van htaccess dus een de redirect is niet gewenst.

Deze actie heeft altijd gewerkt maar geeft nu dus het bovenstaande probleem.

Ik heb de max_execution_time in de php.ini op unlimited staan, post_max_size op 20M en upload_max_filesize eveneens op 20M maar het mag allemaal niet baten.

Iemand enig idee hoe die 301 kan ontstaan en belangrijker nog, hoe ik ervoor kan zorgen dat het request normaal wordt uitgevoerd? Ligt dit aan de server, Chrome of zie ik iets simpels over het hoofd?

ps. De var html bestaat uit ongeveer 4Mb aan data.

Alle reacties


  • Room42
  • Registratie: September 2001
  • Niet online
Check de Apache-logs (access én error), check de browser log (daarin worden de requests ook volledig weergegeven) en bouw wellicht wat debugging in het script. Ik heb het idee dat er iets wordt aangeroepen dat jij niet zo had bedacht. En je vraagt of het aan Chrome ligt, dat kun je natuurlijk makkelijk testen door een andere browser te pakken.

Blokkeert alle ads en trackers met:
- uBlock Origin
- uMatrix
- en Pi-Hole voor de rest van het netwerk.


  • shakkie
  • Registratie: Augustus 2001
  • Laatst online: 29-05 14:29
Evanescent. Goede punten!
Debugging heb ik er voor het voorbeeld weer uit gehaald. Uiteraard heb ik de nodige zaken geprobeerd alvorens ik mijn heil hier zocht. Ik vraag expliciet of het aan Chrome ligt omdat de rest van de applicatie om Chrome heen gebouwd is. Browser log kon mij ook niet verder helpen. Het grootste probleem is de omzetting van de request url. Waarom wordt het stukje index.php/ weggelaten in de request? De oorzaak daarvan vind ik nergens terug.

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 05-06 10:41

NMe

Quia Ego Sic Dico.

Die vind je dan ook niet in je browser log maar in de access- en errorlogs van de webserver, zoals Evanescent al zei. Heb je daar al naar gekeken?

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • HollowGamer
  • Registratie: Februari 2009
  • Niet online
Aangezien je van domeinX naar domeinY gaat, heb je mogelijk te maken met CORS en moet je bepaalde headers gaan zetten.

Ik moet wel aangeven dat ik het jammer vind dat je de debug opties niet kent, heb je deze nooit geleerd? Zeker niet te oud om te leren, maar deze moet je eigenlijk eerst checken.

  • shakkie
  • Registratie: Augustus 2001
  • Laatst online: 29-05 14:29
Heel slordig van mij foxgamer2019 en NME en inderdaad, ik ben niet goed bekend in debugging.
Na de logs te hebben geraadpleegd werd ik niet veel wijzer. Echter helpt vroeg opstaan soms en bedacht ik mij dat het wellicht zou helpen wanneer ik de postdata zou omzetten naar een base64 string en voila! De server accepteert kennelijk geen plain html meer.
Bedankt voor jullie hulp en ik ga het debuggen toch maar eens wat uitdiepen :)

  • AW_Bos
  • Registratie: April 2002
  • Laatst online: 01:46

AW_Bos

Liefhebber van nostalgie... 🕰️

shakkie schreef op zaterdag 22 september 2018 @ 08:15:
De server accepteert kennelijk geen plain html meer.
Dat klinkt wel erg vreemd. Draait er geen vage veiligheidsbarrière op de webserver die HTML blokkeert?

[Voor 28% gewijzigd door AW_Bos op 22-09-2018 09:30]

☀️ Goedemorgen zonneschijn! ☀️
☀️Ja, je maakt me zo gelukkig, en door jou voel ik me fijn! ☀️


  • shakkie
  • Registratie: Augustus 2001
  • Laatst online: 29-05 14:29
AW_Bos schreef op zaterdag 22 september 2018 @ 09:29:
[...]

Dat klinkt wel erg vreemd. Draait er geen vage veiligheidsbarrière op de webserver die HTML blokkeert?
Ja, dat vermoeden heb ik wel. De code draait op een managed VPS en heeft altijd prima gefunctioneerd maar de hostende partij vond het nodig om de boel te migreren en de veiligheid te verhogen. Heel fijn allemaal maar daardoor zijn wel alle settings verloren gegaan en vinden dit soort eigenaardige "foutjes" plaats.
Ik heb geen toegang meer tot de config bestanden en aangezien de persoon die mij opnieuw toegang kan geven kennelijk op vakantie is zal ik het met behulp van wat lelijke workarounds moeten oplossen voorlopig.

  • AW_Bos
  • Registratie: April 2002
  • Laatst online: 01:46

AW_Bos

Liefhebber van nostalgie... 🕰️

Managed door je hosting? Dan is het raar dat er maar een iemand is die verantwoordelijk is voor de configuratie, en die nu met vakantie is.

[Voor 10% gewijzigd door AW_Bos op 22-09-2018 10:22]

☀️ Goedemorgen zonneschijn! ☀️
☀️Ja, je maakt me zo gelukkig, en door jou voel ik me fijn! ☀️


  • shakkie
  • Registratie: Augustus 2001
  • Laatst online: 29-05 14:29
Eens, dat wist ik tot afgelopen donderdag ook niet en baart me best zorgen!

  • KabouterSuper
  • Registratie: September 2005
  • Niet online
Ik check mijn redirects met http://www.redirect-checker.org/
Je kunt hier natuurlijk geen post data inzetten, maar url rewrites doen ook niets het post data dus dat zou niet uit moeten maken.

Zo kan je zien dat http://pricewatch.tweakers.net het volgende oplevert:
code:
1
2
3
4
5
6
7
8
CONGRATULATION. Everything seems to be fine.

http://pricewatch.tweakers.net
301 Moved Permanently
https://pricewatch.tweakers.net/
301 Moved Permanently
https://tweakers.net/pricewatch/
202 Accepted

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 05-06 10:41

NMe

Quia Ego Sic Dico.

shakkie schreef op zaterdag 22 september 2018 @ 10:19:
[...]

Ja, dat vermoeden heb ik wel. De code draait op een managed VPS en heeft altijd prima gefunctioneerd maar de hostende partij vond het nodig om de boel te migreren en de veiligheid te verhogen. Heel fijn allemaal maar daardoor zijn wel alle settings verloren gegaan en vinden dit soort eigenaardige "foutjes" plaats.
Ik ken om eerlijk te zijn geen enkel stukje serverconfig dat at random besluit om /index.php uit een URL te slopen. Om heel eerlijk te zijn lijkt het er eerder op dat je een stukje code hebt dat toevallig werkte in een oudere PHP-versie en in een nieuwere niet meer. De migratie zelf zal het niet zijn. Neemt niet weg dat een host niet zomaar moet migreren zonder overleg en als dat iets stukmaakt zou het ze sieren om de migratie in elk geval tijdelijk terug te draaien, maar da's een ander verhaal.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • mcDavid
  • Registratie: April 2008
  • Laatst online: 22:19
NMe schreef op zaterdag 22 september 2018 @ 13:51:
[...]

Ik ken om eerlijk te zijn geen enkel stukje serverconfig dat at random besluit om /index.php uit een URL te slopen. Om heel eerlijk te zijn lijkt het er eerder op dat je een stukje code hebt dat toevallig werkte in een oudere PHP-versie en in een nieuwere niet meer. De migratie zelf zal het niet zijn.
Dit idd. Of juist andersom, iets wat vroeger niet werkte en nu juist wel. :X

Zo'n redirect kan op grofweg 3 plekken geïnitieerd worden:
1) de loadbalancer
2) de webserver (apache)
3) de applicatie (PHP).

Die eerste twee kun je héél snel uitsluiten door even in de accesslogs van je webserver te kijken. Die derde (lijkt me het meest waarschijnlijk) door even te testen met een "hello world" scriptje of zo.
shakkie schreef op vrijdag 21 september 2018 @ 23:17:
Ik vraag expliciet of het aan Chrome ligt omdat de rest van de applicatie om Chrome heen gebouwd is.
Dat was toch vrij makkelijk uit te sluiten geweest door even met curl of een andere browser een request te doen?
shakkie schreef op zaterdag 22 september 2018 @ 08:15:
Heel slordig van mij foxgamer2019 en NME en inderdaad, ik ben niet goed bekend in debugging.
Na de logs te hebben geraadpleegd werd ik niet veel wijzer. Echter helpt vroeg opstaan soms en bedacht ik mij dat het wellicht zou helpen wanneer ik de postdata zou omzetten naar een base64 string en voila! De server accepteert kennelijk geen plain html meer.
Bedankt voor jullie hulp en ik ga het debuggen toch maar eens wat uitdiepen :)
Nu ben ik wel nieuwsgierig wat het dan is. Maar dit duidt er wel op dat er inderdaad in de applicatie zelf iets raars gebeurt!

  • shakkie
  • Registratie: Augustus 2001
  • Laatst online: 29-05 14:29
Ik ga mij heeeeeel diep schamen....
Het was de LimitRequestFieldSize die de boel tegenhield. Ik heb de postdata opgeknipt en in delen naar de server gestuurd aangezien ik (zoals eerder gemeld) die setting niet kan aanpassen.
Waarom er uiteindelijk een redirect 301 wordt teruggegeven is mij nog wel onduidelijk maar in ieder geval is het probleem opgelost.

  • redfox314
  • Registratie: December 2004
  • Laatst online: 19:04
Iedereen die serieus developed eender wat doet heeft wel eens een ‘Oh you moron’ momentje, hoeveel ervaring je ook hebt.

  • TomsDiner
  • Registratie: November 2014
  • Laatst online: 16-07-2022
shakkie schreef op zaterdag 22 september 2018 @ 08:15:
Echter helpt vroeg opstaan soms en bedacht ik mij dat het wellicht zou helpen wanneer ik de postdata zou omzetten naar een base64 string en voila! De server accepteert kennelijk geen plain html meer.
Base64 vermijdt lastige tekens... Was die oude server zo oud dat magic quotes nog aanstonden?
Pagina: 1


Tweakers maakt gebruik van cookies

Tweakers plaatst functionele en analytische cookies voor het functioneren van de website en het verbeteren van de website-ervaring. Deze cookies zijn noodzakelijk. Om op Tweakers relevantere advertenties te tonen en om ingesloten content van derden te tonen (bijvoorbeeld video's), vragen we je toestemming. Via ingesloten content kunnen derde partijen diensten leveren en verbeteren, bezoekersstatistieken bijhouden, gepersonaliseerde content tonen, gerichte advertenties tonen en gebruikersprofielen opbouwen. Hiervoor worden apparaatgegevens, IP-adres, geolocatie en surfgedrag vastgelegd.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Toestemming beheren

Hieronder kun je per doeleinde of partij toestemming geven of intrekken. Meer informatie vind je in ons cookiebeleid.

Functioneel en analytisch

Deze cookies zijn noodzakelijk voor het functioneren van de website en het verbeteren van de website-ervaring. Klik op het informatie-icoon voor meer informatie. Meer details

janee

    Relevantere advertenties

    Dit beperkt het aantal keer dat dezelfde advertentie getoond wordt (frequency capping) en maakt het mogelijk om binnen Tweakers contextuele advertenties te tonen op basis van pagina's die je hebt bezocht. Meer details

    Tweakers genereert een willekeurige unieke code als identifier. Deze data wordt niet gedeeld met adverteerders of andere derde partijen en je kunt niet buiten Tweakers gevolgd worden. Indien je bent ingelogd, wordt deze identifier gekoppeld aan je account. Indien je niet bent ingelogd, wordt deze identifier gekoppeld aan je sessie die maximaal 4 maanden actief blijft. Je kunt deze toestemming te allen tijde intrekken.

    Ingesloten content van derden

    Deze cookies kunnen door derde partijen geplaatst worden via ingesloten content. Klik op het informatie-icoon voor meer informatie over de verwerkingsdoeleinden. Meer details

    janee