|
Не могу решить проблему с доступом Cross-Origin Resource Sharing
|
|||
---|---|---|---|
#18+
Хочу сделать мульти UPLOAD файлов на другой сервер. У хостера есть лимиты. Хостер отличный, но покупать больше места под файлы достаточно дорого. Имеется свой сервер, который работает как файлообменник NGINX+Apache2+PHP и NodeJS там тоже тусуется в качестве чата и аналитики в реальном времени. Мульти Upload вставляется в страницу как IFRAME. Это удобное решение. Можно также интегрировать и без IFRAME. Для моей задачи у меня почти получилось реализовать идею через IFRAME по схеме №2 (на рисунке). Схема №1 - это рабочая схема но без участия дополнительного сервера (как было). Я пытался решить проблему двумя решениями №2 и №3, но натыкаюсь на проблему с доступом "Cross-Origin Resource Sharing". Почитал инструкцию, вписал в код PHP чтоб давал ответ Код: php 1.
Хоть на двух серверах такой заголовок даю и почему-то никак это не помогает. Кто сталкивался с подобным? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2020, 00:42 |
|
Не могу решить проблему с доступом Cross-Origin Resource Sharing
|
|||
---|---|---|---|
#18+
По №2.Скрипт из IFRAME выдаст ошибку Код: javascript 1.
любое обращение к странице выше уровнем IFrame выдаст ошибку доступа По №3 ошибку выдаст при попытке отправить xhr.send на другой ресурс Код: javascript 1. 2. 3. 4. 5. 6. 7.
Текст ошибки: Access to XMLHttpRequest at 'https://......other/engine/ajax/upl.php?PHPSESSID=.....' from origin 'https://......com' has been blocked by CORS policy: Request header field x-requested-with is not allowed by Access-Control-Allow-Headers in preflight response. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2020, 00:51 |
|
Не могу решить проблему с доступом Cross-Origin Resource Sharing
|
|||
---|---|---|---|
#18+
Решил проблему следующим образом: Код: php 1. 2. 3. 4.
Находил что-то подобное, но не рабочий мой вариант: 1. Какой смысл в заголовке X-Requested-With? 2. Сдесь можно потестировать Понял что header "Access-Control-Allow-Origin: мой сайт" дает результат, но разрешений недостаточно 3. Список разрешений для NGINX Дописал еще одно разрешение X-File-Name и все заработало ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2020, 01:39 |
|
Не могу решить проблему с доступом Cross-Origin Resource Sharing
|
|||
---|---|---|---|
#18+
Заработало по №3 Хотелось бы еще разобраться и с №2 Почитал, что можно использовать <iframe src="URL" sandbox =" allow-same-origin || allow-top-navigation || allow-forms || allow-scripts "></iframe> Почему-то не заработало. Не смог разобраться в чем причина. Может уже отменили ? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2020, 01:46 |
|
Не могу решить проблему с доступом Cross-Origin Resource Sharing
|
|||
---|---|---|---|
#18+
В подобных случаях еще один камень спотыкания - это свойство upload_max_filesize, которое по умолчанию на сервере Apache2 установлен 2М. Много раз ответ был непонятным. Если бы кто-то поднимал эту тему раньше, я бы быстренько разобрался. Рекомендую воспользоваться функцией phpinfo() чтоб разсмотреть другие возможные проблемы. А также рекомендую уствновить идентичные разрешения в Apache2, чтоб не получать полный игнор, а адекватные ошибки, потому, что если на любом этапе серверу что-то не нравится, то в Header ничего не остылается из PHP и мы получим ту же ошибку контроля доступа ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2020, 23:18 |
|
|
start [/forum/topic.php?fid=4&gotomsg=22128496&tid=1319482]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
75ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
others: | 440ms |
total: | 633ms |
0 / 0 |