Spidering en Ajax hemsida med en asynkron inloggningsformuläret (2 / 6 steg)
Steg 2: Hitta rubriker behövs för att skapa en session.
Om du försökte logga in på pubmatic med javascript avstängt i din webbläsare du inte skulle få mycket långt sedan görs omdirigeringar via javascript. Så med tanke på att de flesta spindel webbläsare inte har javascript tolkar vi måste få genom inloggning via en alternativ routen.
Låt oss börja med att få informationen i huvudet skickas från webbläsaren när du klickar på Skicka. Om detta vore en vanlig webbläsare inloggning använder du Mechanize för att fylla i formuläret och klicka på Skicka. Normal inloggning former är inkapslade i ett < form >... < / form > tag och Mechanize skulle kunna lämna denna och avsöka nästa sida utan problem. Eftersom vi inte har en färdig form-taggen, sköts funktionen skickar av javascript. Låt oss kolla pubmatic's submitForm funktion. Gör först öppna webbsidan i firefox och vrid om firebug genom att klicka på firefly i det nedre högra hörnet. Klicka sedan på fliken skript, kopiera all kod som visas och klistra in den i din favorit text redigering bit av programvara. Sedan kan du ta bort all kod utom funktionen submitForm. Det börjar med funktionen "submitForm(theform) {" och allt mellan detta och stänger lockig klammen-funktioner "}".
På analysera denna funktion mycket primitivt märker vi att vissa autentisering händer att föra tillbaka en variabel som kallas xmldoc som tolkas som xml. Detta är en viktig del av AJAX har det tillfrågade servern och kom tillbaka några XML-dokument som innehåller ett träd av information. Noden session_id innehåller session_id om autentiseringen lyckades, kan du berätta detta genom att titta på denna bit av kod: "om (session_id! = null) {//login framgångsrika".
Nu vill vi förhindra denna bit av javascript från att ta oss någonstans så vi kan se vad som bokförs på servern under autentisering. För att göra detta vi kommentera ut omdirigerar alla fönster som ser ut så här: "window.location=...". Kommentera här ute lägga dubbla snedstreck före dem som så: "/ / window.location..." Detta förhindrar att koden körs.
Du kan hämta Javascript-filen nedan som har dessa redigeringar redan gjort.
Kopiera och klistra in denna redigerade bit av javascript in i konsolen windows höger sida och klicka på kör. Detta åsidosätter javascript-funktionen redan i sidan med vår nya version. Nu när du fyller i dina referenser och klicka på Skicka bör du se inlägg och få huvudet information fyll i konsolen, men du kommer inte att gå någonstans.
POST informationen är den information som sköt till servern av AJAX funktioner, du vill vara så mycket som denna som möjligt, kopiera och klistra in denna information i den ett anteckningsblock.