Fehler: Erlaubnis verweigert trotz gleicher Domain

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

  • Fehler: Erlaubnis verweigert trotz gleicher Domain

    Hallo zusammen,

    ich habe ein größeres Problem welches ich bisher nicht so ganz nachvollziehen kann. Und zwar ist mir bei javascript bekannt das es die Meldung: Erlaubnis verweigert gibt wenn man Crossscripting betreibt aber in meinem Fall bleibe ich ja auf der gleichen Domain rufe nur eine andere Datei über den opener auf.

    Ich beschreibe mal was ich erreichen möchte und wozu das ganze dienen soll:

    1. Ich habe ein Kalkulationsblatt indem ich via Klick eine neue Artikelposition hinzufügen kann.
    2. Ich habe ein Button über den ein Fenster geöffnet wird in welchem ich den Artikelstamm eingrenzen kann.
    3. Ich kann im Artikelstamm auf einen Button klicken und den Artikel direkt in eine Position (je nachdem wo ich vorher im Kalkulationsblatt geklickt habe) auf das Kalkulationsblattübernehmen.
    4. Ich klicke auf einen Button im Artikelstamm um den Artikel als NEUE Position in den Artikelstamm zu übernehmen, dazu lade ich das form im opener neu und füge eine Position an, dann gebe ich eine interne ID in ein Suchfeld der neuen Position ein und lade den opener nochmals neu um den Artikel dort nun anzuzeigen, jetzt aber das Problem: Manchmal gehts und manchmal nicht! Soll heißen manchmal kommt bei 1 oder 2 Versuch der Fehler manchmal auch erstmal garnicht und erst beim Hinzufügen der 32. Position...

    Als Debuggingergebnis wird mir diese Zeile:
    while (!window.opener.document.getElementById(feld1) && k<50)

    oder diese dann angezeigt:
    while (!window.opener.document.getElementById('Datengeladen') && k<50)


    Hier mal ein teil des Codes, ich hoffe es kann mir jemand einen Tipp geben:

    PHP-Code:
    function Artikeluebernehmen(zaehlerform_IDModus)
    {
        var 
    feld1 'Artikelnummer_intern' zaehler;
        var 
    1;
        
        if (
    form_ == 1)
            {
            
    //Hier Buttons deaktivieren - Geht bisher nicht - daher Loaderwindow
            //Loaderwindow öffnen
            
    Fenster window.open("ladeanimation.asp""Ladeanimation""width=400,height=400, left=350, top=200");

            if (
    Modus == 1)
                {
                
    //1. Es muss dem Formular im opener eine Position hinzugefügt werden
                //2. Die interne Artikelnummer in der neuen Position muss gefüllt werden
                //3. Das opener.Formular muss die interne Artikelnummer suchen
                //4. Die Position muss mit den Artikeldaten gefüllt werden
            
                
    zaehler = (opener.document.form1.positionscounteraktuellerstand.value*1)+1;
                
    feld1 'Artikelnummer_intern' zaehler;
                
    opener.document.form1.submit();

                while (!
    window.opener.document.getElementById(feld1) && k<50)
                    {
                    
    //alert('Formular lädt noch');
                    
    wait(100);
                    
    k++;
                    }
                }
                
            
    opener.document.getElementById(feld1).value ID;    
            
    opener.document.form1.artikelsucheID_Klick.value zaehler;
            
    opener.document.form1.artikelsuche.value "Artikelsuche";
            
    opener.document.form1.submit();        
            
            
    //Das Objekt muss erst angelegt sein
            
    while (!window.opener.document.getElementById('Datengeladen') && k<50)
                {
                
    //alert('Formular lädt noch - Datengeladen nicht vorhanden!');
                
    wait(100);
                
    k++;
                }    

            
    //Hier Buttons wieder erlauben
            //Loaderwindow schließen
            
    Fenster.close();
            }
    [...] 
    Grüße euch!

  • #2
    Hmm. Ist das vielleicht was nach dem Muster www.domainname.de gegen domainname.de? Ist für den Browser auch Cross-Domain-Scripting.

    Kommentar


    • #3
      Kann eigentlich nicht sein: Da ich zur Zeit nur intern teste ist es jeweils:

      http://nc-sbs01/wwwroot/entwicklung/...web/x1.asp?...

      und

      http://nc-sbs01/wwwroot/entwicklung/...web/x2.asp?...

      Bin irgendwie ratlos und weiß auch nicht wie ich das Problem umgehen könnte...

      Kommentar


      • #4
        Hat denn niemand einen Ansatz? Bin langsam am verzweifeln...

        Kommentar


        • #5
          Hm. Habe keine Idee - aber ein paar Schüsse ins blaue:

          - Wird immer die Domain beim Namen genannt, oder schaltet irgendwas irgendwann z.B. auf die IP um? Alle Fenstereigenschaften checken.

          - Die If-Anweisung dürfte so nicht in Ordnung sein - es fehlen Klammern um die Bedingungen, also

          while ((!window.opener.document.getElementById(feld1)) && (k<50))

          Das müßte im momentanen Zustand unvorhergesehene Ergebnisse produzieren, glaube ich.

          Kommentar


          • #6
            Ich würde vermuten, du wartest nicht bis die Seite fertiggeladen wurde und versuchst schon vorher auf das DOM zuzugreifen. Ich würde mal versuchen dem Popupwindow eine "callback function" zu setzen, die die selbige Funktion erneut aufruft wenn die seite zuende geladen wurde, jedoch nicht ein erneutes popup öffnet.
            Bsp.:
            Code:
            function __callback(a, b)
            {
              alert('a: '+a+'\nb: '+b);
            }
            window.onload = function()
            {
              var f = function() { 
                __callback('test', 'callback'); 
              }
              oPopup = window.open('appendChild.html', '', 'width=400, height=400');
              oPopup.onload = f;
            }

            Kommentar


            • #7
              Danke

              Danke für den Tipp aber ich habe jetzt doch einen Weg gefunden wie ich das Problem umgehen kann...jetzt lade ich den opener nur einmal nach und mache ein focus auf das opener Fenster...dann habe ich auch den gewünschten Effekt...

              Aber dennoch danke, eine interessante Idee, werde ich mir merken...

              Kommentar

              Lädt...
              X