Sergey_K
Проблема в том, что в новом окне (куда ломится скрипт) отдается ПДФ файл
Sergey_K
То есть "пост" там влепить некуда :)
Sergey_K
Ну наверное да, буду проверять в рамках сессии. Спасибо. Чота не подумал сразу.
Gaius Cassius
Ну наверное да, буду проверять в рамках сессии. Спасибо. Чота не подумал сразу.
Это оптимальный выход. Или куки, но чет там с законами не так
Sergey_K
Не, там редирект на php файл, там js никакого не хочу и куки проверять ну нафиг. Сессия должна быть норм ибо юзер туда должен ломиться авторизованный, это все решиит.
Sergey_K
Спасибо!
Avent
там уже "middleware" которые либо разрешает запрос, либо отсеивает
Sergey_K
далеко не всегда, часто в теле запроса
Sergey_K
но как указать браузеру, что надо редиректнуться с определенным хедером не знаю. да и можно ли?
Sergey_K
Загуглю
Sergey_K
Там везде HTTPS, поэтому в заголовке передавать вполне норм, думаю.
Sergey_K
Пищут, что не выйдет
Sergey_K
Аякс - да, а вот браузер - нет.
Gaius Cassius
А что не так с браузером?
Sergey_K
ну на SO пишут, что перенаправить с определенными хедерами нельзя
Gaius Cassius
ну на SO пишут, что перенаправить с определенными хедерами нельзя
Так все серваки же так работают. Не понимаю - почему нельзя(
Sergey_K
Как?
Gaius Cassius
Отдают заголовки в итоге. И чем это плохо я хз
Sergey_K
В каком итоге? :)
Avent
Как?
через HEADER Location. Сначала отправляешь нужные тебе заголовки, потом HEADER Location
Avent
хоп - редирект
Avent
не понимаю в чем проблема
Sergey_K
Погодь
Sergey_K
Думаю вы не поняли
Sergey_K
Еще раз
Sergey_K
Мне нужно, чтобы бразуер ПОСЛАЛ заголовки на страницу, на которую его редиректнули
Gaius Cassius
В каком итоге? :)
Ну смотри Самый яркий пример 301 Какая разница что его отдаст - сервак или система Поэтому не вижу ничего плохого. И хз чем аргументируют те, ктотгоаорят что плохо
Sergey_K
Ну т.е. твой вариант не совсем катит
Avent
Ну т.е. твой вариант не совсем катит
тогда только как GET-параметр
Avent
данные через него передавать
Sergey_K
я сижу на index.html (уловно) и JS меня швыряет на action.php
Sergey_K
Вот мне нужно редиректныться на action.php и еще туда помимо GET параметров отправить кастом заголовок.
Sergey_K
Так низзя
Sergey_K
Как пишут.
Avent
а почему через JS это не сделать?
Sergey_K
Этот php генерирует запрос к другому API и возвращает PDF
Sergey_K
Для этого и нужно открывать в новом окне
Gaius Cassius
Этот php генерирует запрос к другому API и возвращает PDF
Заголовки в таком случае могут и генериться и нет Зависит от серва
Sergey_K
Это функционал печати накладных СДЭК. Первая форма это мой список заказов. Вторая по кодам собирает и печатает из ПДФ все ярлыки отправлений.
Avent
Этот php генерирует запрос к другому API и возвращает PDF
а почему ты не юзаешь CURL на стороне сервера?
Avent
зачем все эти премудрости с редиректом
Sergey_K
Юзаю курл
Sergey_K
Мне надо в итоге получить ПДФ
Sergey_K
В брайзере
Avent
В брайзере
а тебе ссылка на него дается?
Avent
ну возвращай эту ссылку и все
Sergey_K
Нет, конечно :)
Avent
Нет, конечно :)
значит делай еще один POST-запрос к СДЭК
Avent
как будто ты переходишь браузером
Avent
и получай ссылку
Avent
затем возвращай
Avent
или сразу файл сохраняй
Sergey_K
Не, дядь
Sergey_K
Я получаю в PHP файл
Sergey_K
В ответе на свой POST
Sergey_K
И этот файл уже кидаю ответом на GET запрос браузера
Gaius Cassius
И этот файл уже кидаю ответом на GET запрос браузера
Так курл же Отправил, принял, отправил дальше или в эстеншн
Avent
зачем вообще редирект?
Avent
ты же файл отдаешь уже
Sergey_K
ну и в чем проблема?
pdf открывается прямо в браузере
Avent
pdf открывается прямо в браузере
а тебе нужно чтобы скачивался?
Avent
ну так делай заголовок content disposition
Gaius Cassius
pdf открывается прямо в браузере
Так генерь программно и до генерации шли данные
Avent
pdf открывается прямо в браузере
https://stackoverflow.com/questions/9195304/how-to-use-content-disposition-for-force-a-file-to-download-to-the-hard-drive
Avent
вот так будет "скачиваться"
Sergey_K
Нет, мне нужно, чтобы левый чувак не мог зайти на мой пхп вбить ... orderId = 111
Sergey_K
И получить без авторизации файл
Avent
Нет, мне нужно, чтобы левый чувак не мог зайти на мой пхп вбить ... orderId = 111
делай так - при заходе на страницу генерируй скрытое поле с токеном (этот же токен сохраняй в сессии перед выводом на страницу)
Avent
потом когда пользователь отправляет запрос - проверяй этот токен
Avent
и все