2016-09-22 6 views
0

У меня в моей организации два сервера. Один из них доступен только для чтения (сервер A), а другой - наша база знаний (сервер B). На сервере есть файл XML, который обновляется с неизвестным интервалом. Этот файл содержит информацию о статусе различных элементов. Я хочу, чтобы иметь возможность отображать эти статусы на Server B.Междоменное XML-запрос

Как новичок, у меня возникли проблемы с получением той же политики, поскольку у меня нет доступа к Server A.

Сейчас я пытаюсь использовать простой питон скрипт xmlpull.py:

import urllib2 

response = urllib2.urlopen('http://192.168.255.255/connections') 
html = response.read() 

Сценарий большим самостоятельно работает, но проблема, когда я пытаюсь загрузить его с помощью JQuery (xmlpull.html):

<!DOCTYPE html> 
<html> 
<head> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> 
<script> 
$(document).ready(function(){ 
    $.ajax({url: "xmlpull.py", success: function(result){ 
     $("#2").html(result); 
    }}); 
}); 
</script> 
</head> 
<body> 
<div id="2">Change Me Please</div> 
</body> 
</html> 

FF просто дает мне ошибки синтаксиса для обоих xmlpull.html и xmlpull.py файлов на :1:1.

  1. Что я делаю неправильно?
  2. Если это не лучший способ подойти к этой проблеме, то не стесняйтесь предлагать лучший способ.

Заранее благодарен!

+0

Зачем вам нужен аякс? Вам нужен ответ xml, отображаемый в браузере, в частности на html-странице? Python может сделать это напрямую. И обратите внимание: xml-разметка не может быть встроена, так как внутри html-разметки отображается в браузере. Вам нужно преобразовать xml в html. – Parfait

+0

@Parfait Я думаю, мне не нужен AJAX? Я выполнял инструкции [здесь] (http://stackoverflow.com/questions/13175510/call-python-function-from-javascript-code). Как еще я это сделаю? –

+0

Каков ваш желаемый результат? Я не вижу XML. Вам нужна таблица результатов HTML? – Parfait

ответ

0

У вас есть 3 опции опции:

  • Первое: это позволить сервер B для доступа к серверу A. Если вы используете сервер Apache вы можете сделать это, добавьте этот код в файл конфигурации апачский и перезапустить Apache

    SetEnvIf происхождения "HTTP (s):? // (. WWW) (WRITE_IP_OF_SERVER_B_HERE) $" AccessControlAllowOrigin = $ 0 Header добавить Access-Control-Allow-Origin % {AccessControlAllowOrigin} е окр = AccessControlAllowOrigin Header набор Access-Control-Allow-Headers " Content-Type, Accept, Authorization, X-Requested-С»

Таким образом, вы можете вызвать сервер A от сервера B непосредственно от JS и нет необходимости в создать файл питона.

  • Во-вторых, используя файл питона:
    позвонить питон файл из Аякса файл питон должен быть с помощью Apache, доступную или другой сервер и сделать это у вас есть два варианта. mode wsgi или mod python, и для обоих потребуется настройка apache и изменение кода больше, чем размер кода
  • Третий способ, если использовать PHP для этой задачи, создав файл php и добавив его в общую папку apache (www), вы можете назвать это прямой без apache конфигурации.
    содержимое файла будет:

< = file_get_contents ("http://192.168.255.255/connections"); ?>

Смежные вопросы