Poročilo se odpre v brskalniku, parametri se upodobijo, gumb za izvoz pa ustvari napako, prazno prenašanje ali datoteko, ki je preglednica noče odpreti. Ta kombinacija ima standardno obliko. Delujoča stran poročila je preizkusila upodabljanje in preverjanje pristnosti in nič drugega. Izvoz je ločena zahteva z lastnim odgovorom, skozi portal brez odjemalca pa gre tudi skozi plast prepisovanja, ki ni bila nikoli zasnovana za prenašanje datotek.

Dve poti, ena delujoča stran

Upodabljanje in izvoz sta različni operaciji, tudi ko se začneta z istim gumbom. Strežnik poročil upodobi stran za brskalnik in izvoz upodobi skozi drugo izhodno razširitev z lastno vrsto vsebine in lastnim vedenjem ob napaki, kot opisuje dokumentacija za izvoz. Portal, ki prvo spusti brezhibno, lahko drugo še vedno pokvari, ker je drugo odgovor, ki ga portal ni pričakoval. Oba si delita sejo in naslov, in skoraj nič drugega.

Delujočo stran obravnavajte le kot dokaz preverjanja pristnosti in dosegljivosti. Dokazuje, da račun doseže strežnik poročil in da portal posreduje HTML. Ne pove ničesar o odgovorih z datotekami, glavah za razporeditev vsebine ali preusmeritvah, ki se končajo s prenosom in ne z dokumentom.

To je ves razlog za primerjavo poti izvoza posebej, namesto ponovnega preizkušanja strani, ki že deluje. Dve zahtevi, ki si delita sejo, sta še vedno dve zahtevi.

Trije pogoji, ki določajo, kje se izvoz zlomi

Tri vprašanja hitro določijo mesto okvare in vsak odgovor kaže na drugega lastnika.

Prvič, ali se ista poročilo, račun in oblika pravilno izvozijo iz notranjega omrežja? Če se, sta strežnik poročil in njegov upodabljalnik v redu, razlika pa je v dostopni poti. Drugič, ali neuspešni odgovor nosi vrsto vsebine datoteke ali stran HTML s končnico datoteke? To loči napako upodabljalnika od zamenjave, ki jo naredi portal. Tretjič, ali portal prepiše URL zahteve ali odstrani glave iz odgovora? Prepisan URL lahko pristane na povsem drugi končni točki.

Odgovorite na vse tri, preden spremenite nastavitev, ker ima vsaka drugačno zdravilo. Napaka upodabljalnika pripada strežniku poročil, zamenjano telo pripada portalu, odstranjena glava pa je vprašanje politike, ne napaka.

Odgovore zapišite. Primer podpore, sestavljen iz teh treh vrstic, je vreden desetih posnetkov zaslona.

Berite odgovor izvoza, ne kode stanja

Uspešno stanje HTTP dokazuje le, da je nekaj odgovorilo na zahtevo. Preglejte telo in glave skupaj, ker je zanimiva okvara uspešen odgovor z napačno vsebino.

curl -sS -D export.headers -o export.bin --location "https://portal.example.com/reports/export?format=xlsx"
file export.bin
head -c 300 export.bin

Izpisa glav pokaže vrsto vsebine in vsako razporeditev vsebine, ki jo je portal vrnil. Ukaz file prepozna, kaj telo v resnici je, besedilna datoteka tam, kjer je bila pričakovana preglednica, pa je klasična zamenjana prijavna stran. Ukaz head pokaže dovolj za prepoznavo HTML, ne da bi celotno poročilo izlil v terminal.

Odstranite piškotke seje in žetone, preden karkoli od tega delite. Posnetek delujočega izvoza je koristen dokaz, posnetek seje, ki pripada nekomu drugemu, pa je incident.

Izjemo omejite na aplikacijo, ne na račun

Če portal odgovor prepisuje ali blokira, je vabljiva poprava, da izvzamete celo spletišče ali poročilo naredite anonimno. Oboje popravi prenos in odstrani razlog, da portal obstaja. Zožena izjema imenuje eno pot aplikacije, eno vrsto vsebine in eno smer, in ostane pregledna tistemu, ki ima politiko.

Uporabite različico prehoda, ki jo dejansko poganjate, in njegove dokumentirane nastavitve aplikacije. Možnost, ki jo je dobavitelj nekoč opisal kot tisto, ki promet pusti nespremenjen, ni splošno navodilo, in kopiranje iz stare forumske niti je pot, po kateri začasna izjema postane trajna arhitektura.

Če izjeme ni mogoče tako ozko omejiti, izvoz verjetno spada na notranjo pot z drugačno metodo dostopa, ne za portal. Izvzetje celotnega spletišča je odločitev za lastnika portala, ne obvoz za eno poročilo.

Sprejmite izvoz, ne pogovornega okna Shrani

Zadnje preverjanje je datoteka sama: odpre se, vsebuje pričakovane stolpce in njeni seštevki se ujemajo s poročilom, ki ga je uporabnik odobril.

Pojav pogovornega okna Shrani ni uspeh, datoteka, ki se odpre z opozorilom o popravku, pa prav tako ni uspeh. Primerjajte število vrstic in eno znano vrednost s poročilom na zaslonu, ker okrnjen izvoz prestane vsak preizkus, ki gleda le velikost datoteke. Nato izvozite drugič, ker plast predpomnilnika, ki enkrat postreže napačno telo, lahko naslednjič postreže pravo.

Sprejmite delovni tok, ki ga je uporabnik potreboval, in nič manj. Prenos, ki se odpre v napačni aplikaciji, je še vedno neuspešen izvoz.

Sorodni članki