За последние 24 часа нас посетили 21323 программиста и 1023 робота. Сейчас ищет 721 программист ...

No 'Access-Control-Allow-Origin'

Тема в разделе "JavaScript и AJAX", создана пользователем lunberg88, 15 сен 2017.

Метки:
  1. lunberg88

    lunberg88 Новичок

    С нами с:
    29 июн 2017
    Сообщения:
    13
    Симпатии:
    0
    День добрый.

    Стоит на хостинге бесплатном сайт на Laravel 5.4.

    С помощью jQuery пытаюсь подгрузить документ ворд:
    Код (Javascript):
    1.      
    2. $(function() {
    3.            $('#res').load('https://docs.google.com/gview?url=http://site.ua/j.doc&embedded=true');
    4.         });
    На что естественно получаю ответ с ошибкой:
    HTML:
    1.  
    2. XMLHttpRequest cannot load [URL]https://docs.google.com/gview?url=http://site.ua/j.doc&embedded=true[/URL]. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin '[URL]http://site.ua[/URL]' is therefore not allowed access.
    3.  
    Как решить проблему с CORS'ами... Много уже чего пробовал ничего не помогает...

    Или заголовки
    PHP:
    1. header("Access-Control-Allow-Origin: *");
    должны быть у посредника - docs.google.com ?
     
  2. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
     
  3. lunberg88

    lunberg88 Новичок

    С нами с:
    29 июн 2017
    Сообщения:
    13
    Симпатии:
    0
    Ну окей, а как же можно использовать ajax ссылаясь на другой сайт/хост? В моем случаем между двумя независимыми сайтами, которые разделены на frontend и backend части?
     
  4. Deonis

    Deonis Старожил

    С нами с:
    15 фев 2013
    Сообщения:
    1.521
    Симпатии:
    504
    Есть вариант с JSONP, но и в этом случае, нужно, чтобы на стороне сервера сайта, к которому идёт запрос, ответ отдавался в необходимом формате, т.е. разработчики должны об этом позаботиться и предоставить вам такую возможность.
    И что вам мешает обратится к ним с просьбой открыть вам доступ CORS? Вы же не собираетесь воровать у них контент...
     
  5. lunberg88

    lunberg88 Новичок

    С нами с:
    29 июн 2017
    Сообщения:
    13
    Симпатии:
    0
    https://enable-cors.org/server_php.html вот выдержка из сайта, где якобы все просто и достаточно на стороне сервера(backend) добавить одну строку и все будет ок. Но на самом деле ни черта так и не работает...
     
  6. Deonis

    Deonis Старожил

    С нами с:
    15 фев 2013
    Сообщения:
    1.521
    Симпатии:
    504
    Правильно, но вам уже @romach ответил, что это должно быть на стороне сервера того сайта, к которому идёт запрос. По сути, строка Access-Control-Allow-Origin: * говорит, что "я разрешаю всем делать ко мне кроссдоменные запросы".
     
  7. lunberg88

    lunberg88 Новичок

    С нами с:
    29 июн 2017
    Сообщения:
    13
    Симпатии:
    0
    Ну да это понятно. Я сделал как твердят доки, но все равно почему то получаю эту ошибку.
    На первом хостинге стоит Ларавель 5.4, уже даже там в public/index.php вписывал хедер, но по сути бестолку. На уровне apache не могу разрешить корсы.
     
  8. lunberg88

    lunberg88 Новичок

    С нами с:
    29 июн 2017
    Сообщения:
    13
    Симпатии:
    0
    Все, разобрался. Достаточно либо в public/index.php добавить header, либо в .htaccess.
    В моем случаи это использование Laravel 5.4.
     
  9. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719