Извештајот се отвора во прелистувачот, параметрите се прикажуваат, а копчето за извоз создава грешка, празно преземање или датотека што табелата одбива да ја отвори. Таа комбинација има стандардна форма. Работна страница на извештај тестирала прикажување и автентикација и ништо друго. Извозот е одделно барање со свој одговор, а низ портал без клиент поминува и низ слој за препишување што никогаш не бил проектиран за преземања на датотеки.

Два патишта, една работна страница

Прикажувањето и извозот се различни операции дури и кога започнуваат од исто копче. Серверот за извештаи ја прикажува страницата за прелистувач и го прикажува извозот низ друго излезно проширување со свој тип на содржина и свое однесување при грешка, како што опишува документацијата за извоз. Портал што првото го пропушта беспрекорно сепак може да го расипе второто, зашто второто е одговор што порталот не очекувал да го види. Двете делат сесија и адреса, и речиси ништо друго.

Третирајте ја работната страница само како доказ за автентикација и достапност. Таа докажува дека сметката може да стигне до серверот за извештаи и дека порталот препраќа HTML. Таа не кажува ништо за одговори со датотеки, заглавија за распоред на содржина или пренасочувања што завршуваат со преземање, а не со документ.

Тоа е целата причина да се спореди патот на извозот одделно, наместо повторно да се тестира страницата што веќе работи. Две барања што делат сесија се уште две барања.

Три услови што одредуваат каде се крши извозот

Три прашања брзо ја лоцираат дефектот, и секој одговор покажува на различен сопственик.

Прво, дали истиот извештај, сметка и формат се извезуваат правилно од внатрешната мрежа? Ако да, серверот за извештаи и неговиот прикажувач се во ред и разликата е во патот за пристап. Второ, дали неуспешниот одговор носи тип на содржина на датотека, или HTML страница со наставка за датотека? Тоа ја одделува грешката на прикажувачот од замената од порталот. Трето, дали порталот го препишува URL-то на барањето или отстранува заглавија од одговорот? Препишано URL може да слета на сосема друга крајна точка.

Одговорете на сите три пред да смените поставка, зашто секоја има различен лек. Грешката на прикажувачот и припаѓа на серверот за извештаи, заменетото тело и припаѓа на порталот, а отстрането заглавие е прашање на политика, а не грешка.

Запишете ги одговорите. Случај за поддршка изграден од тие три реда вреди десет слики од екран.

Читајте го одговорот на извозот, а не кодот за состојба

Успешен HTTP статус докажува само дека нешто одговорило на барањето. Прегледајте ги телото и заглавијата заедно, зашто интересниот дефект е успешен одговор што носи погрешна содржина.

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

Исписот на заглавија го покажува типот на содржина и секој распоред на содржина што го вратил порталот. Командата file утврдува што е телото всушност, а текстуална датотека таму каде што се очекувала табела е класичната заменета страница за најавување. Командата head покажува доволно за да се препознае HTML без да се истури цел извештај во терминал.

Отстранете ги колачињата за сесија и токените пред да споделите кој било дел од тоа. Снимка од работен извоз е корисен доказ, а снимка од сесија што му припаѓа на некој друг е инцидент.

Ограничете го исклучокот на апликацијата, не на сметката

Ако порталот го препишува или блокира одговорот, заводливиот поправка е да се изземе целата локација или извештајот да стане анонимен. Двете го поправаат преземањето и ја отстрануваат причината зошто порталот постои. Ограничен исклучок именува еден пат на апликација, еден тип на содржина и една насока, и останува прегледен за тој што ја поседува политиката.

Користете ја верзијата на порталот што навистина ја извршувате и неговите документирани поставки за апликации. Опција што добавувач еднаш ја опишал како оставање на сообраќајот непроменет не е општо упатство, а нејзиното копирање од стара форумска тема е патот по кој привремен исклучок станува трајна архитектура.

Ако исклучокот не може да се ограничи толку тесно, извозот веројатно и припаѓа на внатрешната патека со различен метод за пристап, а не зад порталот. Изземањето на целата локација е одлука за сопственикот на порталот, а не заобиколување за еден извештај.

Прифатете го извозот, не дијалогот за зачувување

Последната проверка е самата датотека: таа се отвора, ги содржи очекуваните колони и нејзините вкупни вредности се совпаѓаат со извештајот што го одобрил корисникот.

Појавата на дијалог за зачувување не е успех, а датотека што се отвора со предупредување за поправка исто така не е успех. Споредете го бројот на редови и една позната вредност со извештајот на екранот, зашто скратениот извоз поминува низ секој тест што гледа само големината на датотеката. Потоа извезете втор пат, зашто слој за кеш што еднаш служи погрешно тело може следниот пат да го послужи точното.

Прифатете го работниот тек што му бил потребен на корисникот, и ништо помалку. Преземање што се отвора во погрешната апликација е сѐ уште неуспешен извоз.

Поврзани статии