2016-09-22 2 views
0

Ich habe zwei Server in meiner Organisation. Einer davon ist für mich schreibgeschützt (Server A) und der andere hostet unsere Wissensdatenbank (Server B). Es gibt eine XML-Datei unter Server A, die in einem unbekannten Intervall aktualisiert wird. Diese Datei enthält Informationen über den Status verschiedener Elemente. Ich möchte diese Status auf Server B anzeigen können.Domänenübergreifende XML-Abfrage

Als Anfänger habe ich Probleme, die gleichen Ursprungsrichtlinien zu umgehen, da ich keinen Zugriff auf Server A habe.

Im Moment versuche ich Skript eine einfache Python xmlpull.py zu verwenden:

import urllib2 

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

Das Skript funktioniert gut auf seinem eigenen, aber das Problem ist, wenn ich versuche, es laden mit 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 gibt mir nur Syntaxfehler für beide xmlpull.html und xmlpull.py Dateien unter :1:1.

  1. Was mache ich falsch?
  2. Wenn dies nicht der beste Weg ist, um dieses Problem anzugehen, dann zögern Sie nicht, einen besseren Weg vorschlagen.

Vielen Dank im Voraus!

+0

Warum brauchen Sie Ajax? Benötigen Sie die XML-Antwort in Browser, speziell HTML-Seite gerendert? Python kann das direkt machen. Und beachte: XML-Markup kann nicht eingebettet werden, wie es in HTML-Markup ist, um es im Browser anzuzeigen. Sie müssen XML in HTML umwandeln. – Parfait

+0

@Parfait Ich denke, ich brauche AJAX nicht? Ich folgte den Anweisungen [hier] (http://stackoverflow.com/questions/13175510/call-python-function-from-jicascript-code). Wie sonst würde ich es tun? –

+0

Was ist Ihr Wunschergebnis? Ich kann das XML nicht sehen. Möchten Sie eine HTML-Ergebnistabelle erstellen? – Parfait

Antwort

0

Sie haben 3 Optionen Optionen:

  • Erstens: ist Server B für den Zugriff auf Server A zu ermöglichen Wenn Sie Apache-Server verwenden Sie können dies tun, indem dieser Code die Apache-Konfigurationsdatei hinzufügen und Apache neu starten

    SetEnvIf Herkunft "http (s): // (www.) (WRITE_IP_OF_SERVER_B_HERE) $" AccessControlAllowOrigin = $ 0-Header hinzufügen Access-Control-Allow-Origin % {AccessControlAllowOrigin} e env = AccessControlAllowOrigin Header-Set Access-Control-Erlaube-Header " Content-Type, Accept, Autorisierung X-Requested-With“

So können Sie Server A von Server B direkt von den js und keine Notwendigkeit, die Python-Datei erstellen aufrufen können.

  • Zweite die Python-Datei:
    Python-Datei von Ajax zu rufen, sollte die Python-Datei zugänglich sein Apache verwenden oder einen anderen Server und dies zu tun, haben Sie zwei Möglichkeiten. Modus wsgi oder mod Python und beide erfordern Apache-Konfiguration und Code-Änderung mehr als die Codegröße
  • Drittens, wenn PHP für diese Aufgabe zu verwenden, indem Sie eine PHP-Datei erstellen und fügen sie zu Apache öffentlichen Ordner (www) können Sie es nennen direkt ohne Apache Konfiguration.
    Dateiinhalt wird:

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

Verwandte Themen