Подскажите, пожалуйста.
Делаю AJAX запрос для получения содержимого документа. Документ неопубликован - чтобы его нельзя было увидеть подстановкой id в адресной строке.
В FF все срабатывает нормально. IE и другие пишут ошибку 404 в xmlHttp.status.
Если документ опубликован - все работает нормально.
А надо, чтобы работало с неопубликованным.
неопубликованные документы видны только менеджеру, когда он залогинен.
если вы не залогинены, то возвращается 404.
Предполагаю, что в FF вы были залогинены, а в IE нет, т.к. используете его только для выборочных тестов.
Спасибо. А можно как-то решить эту проблему - чтобы работали AJAX запросы, но не были видны документы?
Честно говоря, с AJAX на modx пока не работал.
Может быть можно сделать веб-юзера, которому разрешить доступ к этим документам (а остальным запретить), и в запросе аякса уже делать авторизацию. (Видимо, там через cookie)
Хотя, в таком случае данные этого пользователя все равно будут в открытом источнике...
А так ли важно закрывать эти документы?
Принципиально опубликование документов не будет влиять на работу сайта. Вопрос чисто эстетический. Если чьи-то шаловливые ручки будут пробовать в адресной строке подставлять id всех подряд документов, то будет открывать документы, которые нужны только для служебного пользования и не нужны для конечных пользователей. Так что, конечно, лучше было бы сделать, чтобы их нельзя было выводить на экран перебором id в адресной строке. Может быть это еще как-то можно сделать?
Дело в том, что тем кому надо будет докопаться до этих страниц — докопаются. Т.к. AJAX выполняется на стороне пользователя и его исходники доступны из браузера.
Чтобы сделать минимальную защиту от дурака, сделайте какой-нибудь служебный параметр в AJAX-запросе, который будет указывать, что страница запрошена именно через AJAX. Ну и проверяйте его на тех служебных страницах.
Это можно реализовать небольшим сниппетом, который проверяет переменную, и если ее нет, то заканчивает обработку страницы, а этот сниппет вызывайте в начале всех ваших служебных страниц.
Но тем не менее, тот, кто будет копать ваши исходники, увидит какую переменную нужно передать, и сможет запросить эти страницы.
Спасибо. Попробую.
Я понимаю, что если приедут на танке, то даже бетонный забор не поможет.
Это небольшое затруднение для начинающих шалунов. Понятно, что общедоступная система всегда подвергается риску быть взломанной. А это вроде как железная входная дверь - создается иллюзия защиты и не каждый проходящий захочет в нее биться. Хотя профессионал вскроет эту дверь за минуту.
Еще раз спасибо за советы.