У меня есть идея: на панели инструментов у меня есть боковая панель с ul и многими li, каждый имеет разные атрибуты href. Когда я нажимаю на эти li, #content будет динамически загружаться с url li, я пытаюсь использовать ajax, но он отправит много запросов на сервер. см. эту ссылку

, а коды см. jsfiddle

, пожалуйста, откройте его в новом окне. Интересно, нельзя ли это сделать с помощью ajax? есть идеи?

спасибо.

Ответы (1)

Вы не можете загружать веб-страницы из другого домена. Это известно как межсайтовый запрос, и они блокируются любым хорошим браузером, чтобы предотвратить атаки Cross-Site Scripting. Эта блокировка известна как Политика одного и того же происхождения.

Если вы посмотрите в консоль при нажатии на одну из ссылок в скрипте, вы увидите ошибку:

XMLHttpRequest cannot load https://en.wikipedia.org/wiki/Main_Page. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'https://fiddle.jshell.net' is therefore not allowed access.

Если вам действительно нужно показать контент со стороннего сайта, вы можете попробовать поместить его в iFrame. У iFrames есть свои ограничения, но вы сможете добиться желаемого, используя их.

Примечание: есть одно исключение для запросов на разные источники. Как видно из сообщения об ошибке, отсутствует заголовок. Если вы смогли изменить код стороннего сайта, чтобы включить этот заголовок, когда ваш сайт сделал запрос, вы можете загрузить сторонний сайт.

2022 WebDevInsider