Atskaite atveras pārlūkā, parametri tiek atveidoti, un eksporta poga rada kļūdu, tukšu lejupielādi vai failu, kuru izklājlapa atsakās atvērt. Šai kombinācijai ir standarta forma. Strādājoša atskaites lapa ir pārbaudījusi atveidošanu un autentifikāciju un neko citu. Eksports ir atsevišķs pieprasījums ar savu atbildi, un caur portālu bez klienta tas arī iet caur pārrakstīšanas slāni, kas nekad nav bijis projektēts failu lejupielādēm.

Divi ceļi, viena strādājoša lapa

Atveidošana un eksportēšana ir dažādas darbības, pat ja tās sākas no vienas pogas. Atskaišu serveris atveido lapu pārlūkam un eksportu atveido caur citu izvades paplašinājumu ar savu satura tipu un savu kļūdu uzvedību, kā apraksta eksporta dokumentācija. Portāls, kas pirmo izlaiž nevainojami, joprojām var sabojāt otro, jo otrais ir atbilde, kuru portāls negaidīja ieraudzīt. Abi dala sesiju un adresi, un gandrīz neko citu.

Uzlūkojiet strādājošo lapu tikai kā autentifikācijas un sasniedzamības pierādījumu. Tā pierāda, ka konts var sasniegt atskaišu serveri un ka portāls pārsūta HTML. Tā neko nesaka par failu atbildēm, satura izvietojuma galvenēm vai pāradresācijām, kas beidzas ar lejupielādi, nevis dokumentu.

Tas ir viss iemesls, kāpēc eksporta ceļš jāsalīdzina atsevišķi, nevis atkārtoti jāpārbauda lapa, kas jau strādā. Divi pieprasījumi, kas dala sesiju, joprojām ir divi pieprasījumi.

Trīs nosacījumi, kas nosaka, kur eksports lūzt

Trīs jautājumi ātri nosaka kļūmes vietu, un katra atbilde norāda uz citu īpašnieku.

Pirmkārt, vai tā pati atskaite, konts un formāts tiek pareizi eksportēti no iekšējā tīkla? Ja jā, atskaišu serveris un tā atveidotājs ir kārtībā, un atšķirība ir piekļuves ceļā. Otrkārt, vai neizdevusies atbilde satur faila satura tipu, vai HTML lapu ar faila paplašinājumu? Tas atdala atveidotāja kļūdu no portāla veiktas aizstāšanas. Treškārt, vai portāls pārraksta pieprasījuma URL vai noņem galvenes no atbildes? Pārrakstīts URL var nonākt pilnīgi citā galapunktā.

Atbildiet uz visiem trim pirms jebkura iestatījuma maiņas, jo katram ir cits risinājums. Atveidotāja kļūda pieder atskaišu serverim, aizstātais pamatteksts pieder portālam, un noņemtā galvene ir politikas jautājums, nevis kļūda.

Pierakstiet atbildes. Atbalsta gadījums, kas veidots no šīm trim rindām, ir desmit ekrānuzņēmumu vērts.

Lasiet eksporta atbildi, nevis statusa kodu

Veiksmīgs HTTP statuss pierāda tikai to, ka kaut kas atbildēja uz pieprasījumu. Pārbaudiet pamattekstu un galvenes kopā, jo interesantā kļūme ir veiksmīga atbilde ar nepareizu saturu.

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

Galveņu izdruka parāda satura tipu un jebkuru satura izvietojumu, ko portāls atgrieza. Komanda file nosaka, kas pamatteksts patiesībā ir, un teksta fails tur, kur tika gaidīta izklājlapa, ir klasiskā aizstātā pierakstīšanās lapa. Komanda head parāda pietiekami, lai atpazītu HTML, neizgāžot visu atskaiti terminālī.

Noņemiet sesijas sīkfailus un marķierus pirms jebkuras tās daļas kopīgošanas. Strādājoša eksporta ieraksts ir noderīgs pierādījums, un citam piederošas sesijas ieraksts ir incidents.

Ierobežojiet izņēmumu ar lietojumprogrammu, nevis kontu

Ja portāls pārraksta vai bloķē atbildi, vilinošais labojums ir atbrīvot visu vietni vai padarīt atskaiti anonīmu. Abi salabo lejupielādi un noņem iemeslu, kāpēc portāls pastāv. Šaurs izņēmums nosauc vienu lietojumprogrammas ceļu, vienu satura tipu un vienu virzienu, un tas paliek pārskatāms tam, kuram pieder politika.

Izmantojiet to vārtejas versiju, kuru patiešām darbinat, un tās dokumentētos lietojumprogrammas iestatījumus. Opcija, ko piegādātājs savulaik aprakstīja kā satiksmes atstāšanu nemainīgu, nav vispārīga instrukcija, un tās kopēšana no vecas foruma tēmas ir ceļš, kā pagaidu izņēmums kļūst par pastāvīgu arhitektūru.

Ja izņēmumu nevar sašaurināt tik stingri, eksports, visticamāk, pieder iekšējam ceļam ar citu piekļuves metodi, nevis aiz portāla. Visas vietnes atbrīvojums ir portāla īpašnieka lēmums, nevis vienas atskaites apvedceļš.

Pieņemiet eksportu, nevis saglabāšanas dialoglodziņu

Pēdējā pārbaude ir pats fails: tas atveras, tajā ir gaidītās kolonnas, un tā kopsummas atbilst atskaitei, kuru lietotājs apstiprināja.

Saglabāšanas dialoglodziņa parādīšanās nav panākums, un fails, kas atveras ar labošanas brīdinājumu, arī nav panākums. Salīdziniet rindu skaitu un vienu zināmu vērtību ar atskaiti ekrānā, jo saīsināts eksports iztur katru testu, kas skatās tikai uz faila lielumu. Pēc tam eksportējiet otru reizi, jo kešatmiņas slānis, kas vienreiz pasniedz nepareizo pamattekstu, nākamajā mēģinājumā var pasniegt pareizo.

Pieņemiet darbplūsmu, kas lietotājam bija vajadzīga, un ne mazāk. Lejupielāde, kas atveras nepareizajā lietojumprogrammā, joprojām ir neizdevies eksports.

Saistītie raksti