Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Кроссдоменный AJAX существует или нет?
|
|||
|---|---|---|---|
|
#18+
Здравствуйте. Надо выполнить кроссдоменный аякс POST-запрос. Раньше где-то тут утверждали, что XMLHttpRequest может это делать в современных браузерах . Однако при попытке это сделать в консоли вижу такую ошибку: ChromiumXMLHttpRequest cannot load http://site2.com/scripts/script.php?u=aaa&cbf=_cbfc. Origin http://site1.com is not allowed by Access-Control-Allow-Origin. В файле script.php пишу: Код: php 1. уже в самый верх переместил. Начал копать. Оказывается этот скрипт вообще и не пытается выполняться, как тогда вообще возможно заголовки отправить, если браузер их и не хочет получать? Отвечает, что не разрешено, но даже не спрашивал. Шлёт какой-то запрос OPTIONS в ответ получает 200ОК, но как если скрипт совсем не выполнялся?! Кто-нибудь может объяснить что происходит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2015, 19:29 |
|
||
|
Кроссдоменный AJAX существует или нет?
|
|||
|---|---|---|---|
|
#18+
janco, статью-то читать пробовали? «Непростые» запросыПервый запрос называется «предзапрос» (английский термин «preflight»). Браузер делает его целиком по своей инициативе, из JavaScript мы о нём ничего не знаем, хотя можем увидеть в инструментах разработчика. Этот запрос использует метод OPTIONS. Он не содержит тела и содержит название желаемого метода в заголовке Access-Control-Request-Method, а если добавлены особые заголовки, то и их тоже — в Access-Control-Request-Headers. Его задача — спросить сервер, разрешает ли он использовать выбранный метод и заголовки. На этот запрос сервер должен ответить статусом 200, без тела ответа, указав заголовки Access-Control-Allow-Method: метод и, при необходимости, Access-Control-Allow-Headers: разрешённые заголовки. https://learn.javascript.ru/xhr-crossdomain#непростые-запросы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2015, 22:33 |
|
||
|
Кроссдоменный AJAX существует или нет?
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2015, 22:48 |
|
||
|
Кроссдоменный AJAX существует или нет?
|
|||
|---|---|---|---|
|
#18+
skyANAjanco, статью-то читать пробовали? «Непростые» запросыПервый запрос называется «предзапрос» (английский термин «preflight»). Браузер делает его целиком по своей инициативе, из JavaScript мы о нём ничего не знаем, хотя можем увидеть в инструментах разработчика. Этот запрос использует метод OPTIONS. Он не содержит тела и содержит название желаемого метода в заголовке Access-Control-Request-Method, а если добавлены особые заголовки, то и их тоже — в Access-Control-Request-Headers. Его задача — спросить сервер, разрешает ли он использовать выбранный метод и заголовки. На этот запрос сервер должен ответить статусом 200, без тела ответа, указав заголовки Access-Control-Allow-Method: метод и, при необходимости, Access-Control-Allow-Headers: разрешённые заголовки. https://learn.javascript.ru/xhr-crossdomain#непростые-запросы Спасибо за ответ. Конечно. Но не могу понять, зачем Вы меня направляете на "непростые" запросы? Я же явно поставил задачу: отправить POST-запрос, который является простым , как в этой статье написано. learn.javascript.ruЧтобы пресечь любые недопонимания, браузер использует предзапрос в случаях, когда: Если метод — не GET / POST / HEAD. Если заголовок Content-Type имеет значение отличное от application/x-www-form-urlencoded, multipart/form-data или text/plain, например application/xml. Если устанавливаются другие HTTP-заголовки, кроме Accept, Accept-Language, Content-Language. У меня метод POST. Следовательно, зачем браузер прётся на сервер с запросом OPTIONS - я так и не понял. Может он это делает при любом методе, но тогда то что написано в статье - враньё. Тогда хотелось бы почитать "настоящую" документацию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2015, 17:03 |
|
||
|
Кроссдоменный AJAX существует или нет?
|
|||
|---|---|---|---|
|
#18+
janco, я Вам процитировал ту часть, где всё объясняется. Что Вам там не понятно? Хотите спецификацию, пожалуйста: Cross-Origin Resource Sharing . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2015, 18:49 |
|
||
|
Кроссдоменный AJAX существует или нет?
|
|||
|---|---|---|---|
|
#18+
За ссылочку спасибо. Что мне неясно, объясняю: почему браузер отправляет preflight-запрос для простого метода POST? Как ещё яснее поставить вопрос? Цитирую спецификацию: W3User agents can discover via a preflight request whether a cross-origin resource is prepared to accept requests, using a non-simple method, from a given origin. Из чего следует, что preflight запросы используются для выяснения, готов ли сервер принимать НЕПРОСТЫЕ запросы. Или я неправильно перевёл? Выяснять, примет ли сервер запрос POST спецификация не требует, а браузер это делает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2015, 21:43 |
|
||
|
Кроссдоменный AJAX существует или нет?
|
|||
|---|---|---|---|
|
#18+
jancoЗа ссылочку спасибо. Что мне неясно, объясняю: почему браузер отправляет preflight-запрос для простого метода POST? В статье же черным по белому написано: Чтобы пресечь любые недопонимания, браузер использует предзапрос в случаях, когда: - Если метод — не GET / POST / HEAD. - Если заголовок Content-Type имеет значение отличное от application/x-www-form-urlencoded, multipart/form-data или text/plain, например application/xml. - Если устанавливаются другие HTTP-заголовки, кроме Accept, Accept-Language, Content-Language. …Любое из условий выше ведёт к тому, что браузер cделает два HTTP-запроса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2015, 21:55 |
|
||
|
Кроссдоменный AJAX существует или нет?
|
|||
|---|---|---|---|
|
#18+
И кстати ссылка на спецификацию есть в статье, не ленитесь читать :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2015, 21:59 |
|
||
|
Кроссдоменный AJAX существует или нет?
|
|||
|---|---|---|---|
|
#18+
Т.е. Вы намекаете, что Content-type может быть другим? Ну, этого не исключаю, явно не задаю, спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2015, 18:02 |
|
||
|
|

start [/forum/topic.php?fid=22&msg=39297796&tid=1445056]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
173ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
| others: | 11ms |
| total: | 284ms |

| 0 / 0 |
