Можно ли получить файлы с двух разных серверов, используя HTML или JavaScript - PullRequest
0 голосов
/ 23 июня 2009

Можно ли получить файлы с двух разных серверов, используя HTML или javascript, Допустим, файл A находится на сервере A, а файл B - на сервере B. Возможно ли получить доступ к обоим файлам и отобразить их РЕДАКТИРОВАТЬ: пожалуйста, оставьте код

Ответы [ 3 ]

1 голос
/ 23 июня 2009

Вы можете создать скрипт на сервере B, который возвращает JSONP -представление файла, указанного в строке запроса. Затем динамически (я имею в виду JavaScript) создайте тег <script>, например:

<script type="text/javascript" src="http://server-b.com/get-file.php?file-b.txt"></script>

чтобы включить его как файл JavaScript. После включения вы получите содержимое файла B, указанное в аргументе функции обратного вызова.

1 голос
/ 23 июня 2009

Поскольку в ваших вопросах спрашивается, как этого добиться с помощью HTML или JavaScript, а для JavaScript уже есть пара ответов, я поделюсь своими мыслями о том, как это сделать в HTML.

Это, вероятно, немного проще, чем использовать JS:

Для HTML есть два типа URL-ссылок, которые вы можете использовать: относительный и абсолютный. Тип, который нас интересует для нескольких доменов, является абсолютным. Вы должны иметь доступ к файлу на другом сервере (домене), используя абсолютный путь. Скажем, доменное имя сервера A - servera.com, а файл file_a.htm находится в корневом веб-каталоге. Код, который вы ищете:

<a href="http://servera.com/file_a.htm">File A on Server A</a>

Конечно, вы можете отобразить это во встроенном фрейме, если не хотите перенаправлять пользователей со своей страницы:

<iframe src="http://servera.com/file_a.htm">
  <p>Iframes are not supported by your browser. Please consider upgrading.</p>
</iframe>
1 голос
/ 23 июня 2009

Используя Javascript (поскольку именно так вы пометили вопрос), вы не можете запросить файл, поскольку нарушите междоменное ограничение AJAX.

Вам потребуется запросить страницу, используя что-то вроде cURL или urllib на стороне сервера.

Например, с Python вы можете сделать что-то вроде:

import urllib2
page = urllib2.urlopen('http://www.google.com').read()
print(page)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...