Wie kann ich ein JS Objekt bzw. Variablen an einen anderen Server senden?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Wie kann ich ein JS Objekt bzw. Variablen an einen anderen Server senden?

    Hi Leute.

    ich versuche Datenbankinhalte von einem Server zu Laden und auf einer Website anzuzeigen, die auf einem anderem Server liegt.

    Ich binde die Dateien so ein:

    PHP-Code:
    <script type="text/javascript" src="http://www.domain.de/show_add.js"></script>
    <
    script type="text/javascript" src="http://www.domain.de/ajax.js"></script>        
    <
    script type="text/javascript">
    load();

    </
    script
    Ich bekomme den Fehler im Firebug ausgegeben:

    [php
    uncaught exception: Access to restricted URI denied (NS_ERROR_DOM_BAD_URI)
    [/php]

    und das ist die Zeile zu der ich geführt werde:

    PHP-Code:
    case "POST"xmlHttpRequest.open(this.methodthis.urltrue); 
    das ist die Datei in der der Fehler auftritt:

    ajax.js
    PHP-Code:
    function Ajax() {
      
    //Eigenschaften deklarieren und initialisieren
      
    this.url="";
      
    this.params="";
      
    this.method="GET";
      
    this.onSuccess=null;
      
    this.onError=function (msg) {
        
    alert(msg)
      }
    }

    Ajax.prototype.doRequest=function() {
      
    //Üeberpruefen der Angaben
      
    if (!this.url
      {
        
    this.onError("Es wurde kein URL angegeben. Der Request wird 
    abgebrochen."
    );
        return 
    false;
      }

      if (!
    this.method
      {
        
    this.method="GET";
      } 
      else 
      {
        
    this.method=this.method.toUpperCase();
      }

      
    //Zugriff auf Klasse für readyStateHandler ermöglichen  
      
    var _this this;
      
      
    //XMLHttpRequest-Objekt erstellen
      
    var xmlHttpRequest=getXMLHttpRequest();
      if (!
    xmlHttpRequest
      {
        
    this.onError("Es konnte kein XMLHttpRequest-Objekt erstellt 
    werden."
    );
        return 
    false;
      }
      
      
    //Fallunterscheidung nach Übertragungsmethode
      
    switch (this.method
      {
          
    //alert(this.url);
      
        
    case "GET"xmlHttpRequest.open(this.methodthis.url+"?"+this.paramstrue);
                    
    xmlHttpRequest.onreadystatechange 
    readyStateHandler;
                    
    xmlHttpRequest.send(null);
                    break;
        case 
    "POST"xmlHttpRequest.open(this.methodthis.urltrue);
                     
    xmlHttpRequest.onreadystatechange 
    readyStateHandler;
                     
    xmlHttpRequest.setRequestHeader('Content-Type'
    'application/x-www-form-urlencoded');
                     
    xmlHttpRequest.send(this.params);
                     break;
      }  

      
    //Private Methode zur Verarbeitung der erhaltenen Daten
      
    function readyStateHandler() 
      {
            if (
    xmlHttpRequest.readyState == 4
            {            
                if (
    xmlHttpRequest.status == 200
                {
                      if (
    _this.onSuccess
                      {
                            
    _this.onSuccess(xmlHttpRequest.responseText
    xmlHttpRequest.respon************ML);
                      }
                } 
                else 
                {
                      if (
    _this.onError
                      {
                            
    _this.onError("["+xmlHttpRequest.status+" "+
    xmlHttpRequest.statusText+"] Es trat ein Fehler bei der 
    Datenübertragung auf."
    );
                      }
                }
            }
      }
    }

    //Gibt browserunabhängig ein XMLHttpRequest-Objekt zurück

    function getXMLHttpRequest() 
    {
      if (
    window.XMLHttpRequest) {
        
    //XMLHttpRequest für Firefox, Opera, Safari, ...
        
    return new XMLHttpRequest();
      } else 
      if (
    window.ActiveXObject) {
        try {   
          
    //XMLHTTP (neu) für Internet Explorer 
          
    return new ActiveXObject("Msxml2.XMLHTTP");
        } catch(
    e) {
          try {        
            
    //XMLHTTP (alt) für Internet Explorer
            
    return new ActiveXObject("Microsoft.XMLHTTP");  
          } catch (
    e) {
            return 
    null;
          }
        }
      }
      return 
    false;

    Danke im Voraus!

  • #2
    gib doch mal ein alert( this.url ) vor dem aufruf xmlHttpRequest.open aus.
    Freedom is a state of mind. Not a state in which we live.

    troxdev.ch | animefieber

    Kommentar


    • #3
      Welcome to the Same Origin Policy.
      [FONT="Helvetica"]twitter.com/unset[/FONT]

      Shitstorm Podcast – Wöchentliches Auskotzen

      Kommentar


      • #4
        bei alert(this.url) kommt "undefined" raus. was muss das den für eine url sein?

        Kommentar


        • #5
          Jetzt wird auf einmal doch die URL im alert ausgegeben.. es ist die URL der PHP Datei auf dem fremden Server...

          Kommentar


          • #6
            Hat keiner ne Ahnung?

            Kommentar


            • #7
              Original geschrieben von BananaJo
              Hat keiner ne Ahnung?
              Original geschrieben von unset
              Welcome to the Same Origin Policy.

              Kommentar


              • #8
                Original geschrieben von unset
                Welcome to the Same Origin Policy.
                wikipedia

                peter
                Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                Meine Seite

                Kommentar


                • #9
                  Die Same Origin Policy (SOP) stellt ein wesentliches Sicherheitselement in allen modernen Browsern und Webanwendungen zum Schutz vor Angriffen dar. Aus Sicherheitsgründen dürfen JavaScript und ActionScript nur dann auf Objekte einer Webseite zugreifen, wenn sie aus der selben Domain stammen, beispielsweise auf Elemente, Cookies, XML-Dateien und HTML-Dateien.
                  Heist das das es garnicht möglich ist??? wie macht das den dan google mit den adwords anzeigen? Was ist das für eine Technik???

                  Wenn das jemand beantworten kann, bin ich sehr dankbar!..

                  Danke schon mal!....

                  Kommentar


                  • #10
                    Ad-Banner wird nur eingebunden, sie werden von den Ursprungsservern gesteuert. Die Websites, die Ad eingebunden hat, sendet keine Daten zum Ad-Server, sondern stellt nur dar, was sie kriegt, daher verletzt sie das Prinzip SOP nicht.

                    Kommentar


                    • #11
                      Wenn eine Seite mit Ads geladen wird, sendent diese doch eine Anfrage an den Ad Server, so das er den gewünschren Inhalt bzw. scripte liefert.. oder verstehe ich da was falsch...

                      Gibt es dazu irgendwo im Internet ein zustandsdiagramm oder einen "Plan", bei dem man genau Sieht, wie das prinzip funktioniert und was für "funktionen" bzw. techniken man dafür von javaScript kennen muss? Ich meine ein Tutorial oder soetwas in der Art....

                      Ich suche schon einige Tage nach so etwas... aber ich werde nicht fündig..

                      Danke schon mal, falls jemand so etwas anzubieten hat...
                      Zuletzt geändert von BananaJo; 06.10.2008, 16:53.

                      Kommentar


                      • #12
                        Senden und empfangen schon, aber nicht per Script auf die empfangenen Elemente zugreifen oder bearbeiten. Lese doch bitte genauer, was oben steht.

                        Kommentar


                        • #13
                          Ich will auf die Elemente ja garnicht zugreifen bzw. sie bearbeiten, sondern nur das empfangene anzeigen lassen...

                          Also es soll so sein, das beim laden einer externen Seite, Inhalt von meinem Server geladen wird und dieser auf der Fremden Seite angezeigt wird. Der Inhalt bestent aus Css Formatierungen und Javascript funktionen, die nur mit den Geladenen Inhalt arbeiten (mouseOver und so).... Die Inhalte die geladen werden, werden auf meinen Server zuvor aus meiner Datenbank gelesen und dan an den anderen Server übergeben... das Laden aus der Datenbank erlegigt eine PHP Datei...

                          Jetzt habe ich aber immer noch nicht einen Ansatz gesagt bekommen, wie ich das anstelle, das ich Code eines Fremden Servers anzeigen lassen kann (ala Google AdScense).... Ein Ansatz, wie ich überhapt anfangen muss und was für JavaScript funktionen dafür zu gebrauchen sind, währe schon sehr hilfreich..

                          Danke!

                          Kommentar


                          • #14
                            Sobald du per XmlHttpRequest irgendwas aufrufst, was ausserhalb deiner Website ist, verletzst du schon SOP! Das ist einfach nicht zulässig.

                            Du kannst aber versuchen, in PHP via fsockopen die Daten zu holen, serverseitig zu verarbeiten und dann darzustellen.

                            Kommentar


                            • #15
                              Der Quellcode der auf der fremden Seite eingebunden wird, um die Daten zu laden, sollte schon JavaScript sein, da es ja vllt. auch eine HTML Seite sein kann, in der der Quellcode eingebunden wird.

                              Was ist also von JavaScript her nötig, um auf eine PHP Datei eines fremden Servers zuzugreifen. Bei mir erzeugt die PHP Datei die nötigen Inhalte, die geladen werden.
                              Zuletzt geändert von BananaJo; 07.10.2008, 10:53.

                              Kommentar

                              Lädt...
                              X