не могу загрузить http://www.google.co.uk/. Origin http://localhost не разрешен Access-Control-Allow-Origin - PullRequest
0 голосов
/ 15 апреля 2011

Я просто хочу загрузить Google, в div, используя функцию щелчка тегами привязки. Но я получаю эту ошибку:

cannot load http://www.google.co.uk/. Origin http://localhost is not allowed by Access-Control-Allow-Origin.

Я пытаюсь получить к нему доступ таким образом:

$(".someclass").load("http://www.google.co.uk");

Я знаю, что кросс-домен ограничен, но есть ли способ сделать это? Я тоже попробовал функцию jjery ajax. но безуспешно Некоторые предложения, пожалуйста.

Ответы [ 2 ]

2 голосов
/ 15 апреля 2011

Вы не можете загрузить Google из-за той же политики происхождения .

Чтобы выполнить вызов XHR, протокол, домен и порт должны совпадать.

Если вына http://bla.example.com вы можете изменить свой домен следующим образом ...

document.domain = 'example.com';

Чтобы обойти его, вы можете прокси-сервер на стороне сервера данных или использовать YQL .

0 голосов
/ 15 апреля 2011

Вам нужен прокси-скрипт на вашем сервере.Вызовите этот прокси-скрипт из вашего внешнего интерфейса, чтобы эффективно перезвонить исходному серверу.

$ ('. Someclass'). Load ('proxy.php? Url = http://www.google.co.uk');

Серверный прокси-сервер затем выбирает запрошенный URL-адрес и возвращает его во внешний интерфейс.

Убедитесь, что белый список URL-адресов не позволяет использовать скрипт. Вместо передачи реального URL-адреса между внешним интерфейсом и прокси-сценарием используйте логические ключи.

$ ('. Someclass').load ('proxy.php? page = google_uk ');

В вашем прокси-скрипте вы вызываете http://www,google.co.uk при запросе google_uk. Если кто-то пытается использовать ваш скриптпередав URL-адрес или неверный ключ, вы можете вернуть код ошибки http 403 (не авторизован).

Если вам нужна только определенная часть страницы, полезно знать, что метод загрузки также принимаетcss-селектор вот так:

$ ('. someclass'). load ('proxy.php? page = google_uk div # search_form ');

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...