Если я правильно понимаю вопрос, вы, вероятно, не сможете сделать это, используя только Javascript, из-за ограничений домена, с которыми вы столкнулись. Однако, если у вас есть знания по использованию сценариев оболочки или любого языка сценариев, это не должно быть проблемой, все, что вам нужно сделать, это вызвать старый добрый curl.
Пример в PHP:
<?php
$url = "http://www.example.com/index.html";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.5) Gecko/20041107 Firefox/1.0');
$fp = curl_exec($ch);
curl_close($ch);
?>
И это во многом. У вас есть фактический HTML-код в переменной $ fp. Итак, в общем, я хотел бы написать небольшую Ajax-функцию Javascript для PHP, которая выполняет curl, а затем возвращает переменную $ fp через echo в обратный вызов Javascript, а затем, возможно, вставить ее в документ (используя innerHTML или DOM) и Бэм, у вас есть доступ ко всем вещам. Или вы можете просто разобрать его в PHP. В любом случае, должно работать нормально, если вы делаете это через curl. Надеюсь, это поможет.
Редактировать : После некоторых размышлений мне кажется, что я помню, что Safari снимает междоменное ограничение для localhost. После дополнительных исследований я не могу найти никакой документации, которая бы поддерживала эту мою теорию, поэтому я выкопал немного глубже и нашел лучший (хотя и более хакерский) способ выполнить весь этот беспорядок через Apache, если вы используете его (который Вы, вероятно,).
Apache mod_proxy примет запрос на что-то вроде «/ foo» и фактически направит запрос в какое-то удаленное место назначения, например «* 1014» * Конечный результат заключается в том, что ваш веб-браузер считает, что вы позвонили http://localhost/foo но на самом деле вы отправляете и извлекаете данные с удаленного сервера. Решены проблемы безопасности!
Пример:
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule rewrite_module modules/mod_rewrite.so
Давайте предположим, что я хочу получить доступ к файлу на http://dev.domain.com/remote/api.php. Вы бы поместили все следующее в:
# start mod_rewrite
RewriteEngine On
ProxyRequests Off
<Proxy>
Order deny,allow
Allow from all
</Proxy>
ProxyPass /apitest/ http://dev.domain.com/remote/api/
ProxyPassReverse /apitest/ http://dev.domain.com/remote/api/
RewriteRule ^/apitest/(.*)$ /remote/api/$1 [R]
Источник
Больше править:
Видя, как вы хотите избежать всей настройки сервера, я попробовал использовать IFRAME в Safari (Mac), и это сработало, по крайней мере, для доменов, которые я пробовал:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
<html>
<head>
</head>
<body>
<iframe src="http://www.stackoverflow.com/"></iframe>
</body>
</html>