tamam, once icerisinde ajax cagrilar olan bir html sayfasi nasil calisir ona bakalim.
- Client(ziyaretci) xx.com adresli web sayfasina cagri atar.
- Server bu cagriya bir html olusturarak cevap verir. bu html icerisinde html kodlari, resim adresleri, css adresleri, ve ajax cagrisi yapilacak adresler bulunur. Bunu tarayiciya gonderir. (resim css ve ajax cagri adresleri cagrilmadi henuz. tarayici sadece bunlarin adreslerini biliyor.)
- Client `in browser`i bu html kodunu alir ver derler. html`leri gorsellestirir, css url lerine request atar, resim adreslerini cagirir ve gosterir. Ardindan javascript kodlarini calistirir. Yani browser, sayfayi yukledikten sonra javascripti calistirir. Bu javascript icerisinde de ajax cagrisi varsa onlari cagirir.
- Varsa bir ajax cagrisi (xx.com/ajaxcagrisi diyelim), o adresler tarayici tekrar cagri atar. sizin sayfaniz yuklenmeden baska bir adresten veri cekilir ve browseriniz bu veriyi size gosterir.
Simdi siz bu ajax cagrisi ile gelen yeri almak istiyorsunuz.
xx.com a curl ile giderseniz, curl sadece html verisini alir. ne resimleri ne css leri ne de ajax adreslerni yukler. cunku curl bir browser emulatoru degildir. dolayisiyla ahax cagrilarinin sonucunu alamzsiniz.
ajax cagrisi sonucunu almak icin xx.com/ajaxcagrisi adresine curl ile gitmeniz gerekir. bu adresi de xx.com a gidip ilgili yerden almaniz gerekiyor.
Birde ajax cagrisi yapilan xx.com/ajaxcagrisi adresine muhtemelen xx.com da bulunan viewstate, sessionstate gibi input post parametreleri gondermeniz gerekmekte olabilir. Kontrol etmeni lazim.
Kisaca, ajax ile yuklenen sayfa adresini bulu o adrese sorgu atmaniz lazim.
not: eger browser simulatoru istiyorsaniz phantom.js gibi frameworkler kullanabilirsiniz. curl un js calistiran hali gibi dusunun.
not2: tarayici konsol (f12) kullanma videolarina goz atin.
umarim aciklayici olmustur