| 

.NET C# Java Javascript Exception

1
Hallo zusammen,

ich hab einen Webservice in C# geschrieben, der 3 Webmethoden zur Verfügung stellt.
Wenn ich den Service im Browser aufrufe funktioniert er tadellos.

Sobald ich aber den Service über Javascript aus einer HTML Seite aufrufe, bekommen ich den Fehler "Zugriff verweigert".

var req = null;
try
{
req = new XMLHttpRequest();
}
catch (ms)
{
try
{
req = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (nonms)
{
try
{
req = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (failed)
{
req = null;
}
}
}

if (req == null)
alert("Error creating request object!");

req.open("GET", curUrl, true);


Der Webserver der HTML Seite und der des Webservice sind 2 verschiedene. Beider befinden sich aber in der selben Domäne.
Google hilft bisher nur in sofern weiter, dass aufgrund von Security Policies kein Domain-übergreifender Zugriff erfolgen darf. Das ist m.M.n. hier ja aber nicht der Fall, oder!?

Hat jemand eine Idee wie ich das beheben kann?
17.09.2009
13thAngel 363 2 8
Hat sich erledigt, das ganze funktioniert natürlich auch nur, wenn die HTML Seite auch auf dem Webserver und nicht im Filesystem aufgerufen wird... Wie war das nochmal mit dem Wald und den Bäumen? ;)
13thAngel 17.09.2009
1 Antwort
4
Wenn du mit Domain die Windows Domain meinst (ADS) dann folgendes:

Das Problem ist das es den Browser nicht interessiert ob die Server in der selben Windows-Domain sind sondern nur ob Sie die selbe Second-Level-Domain (DNS) haben. ADS-Domains und DNS-Domains haben nichts mit einander zu tun.

Ganz abgesehen davon gibt es folgende Lösungsmöglichkeiten.

  • Für JSONP ("JSON with padding") gelten die Same Origin Policys nicht.
  • Es gibt die Möglichkeit des Cross-Origin Resource Sharing (CORS)
  • Flash-Proxy (die WS-Requests werden nicht von AJAX sondern übers Flash gemacht)
  • ASPX/ASMX-Proxy (die WS-Requests werden von einer Webseite auf dem eigenen (in deinem Fall der Webserver) Server gemacht und im Anschluss zurückgereicht)

14.07.2011
Floyd 14,6k 3 9
Ach du scheiße .. der Beitrag ist ja bereits von 2009. Sorry. Hab nur gesehen das er unter den aktuellen Fragen als unbeantwortet war. :D
Floyd 14.07.2011
1
Auch wenn das ursprüngliche Problem längst gelöst war - Deine Liste von Lösungsmöglichkeiten finde ich trotzdem lesenswert.
Matthias Hlawatsch 14.07.2011
1
Sehr schöne Übersicht an Lösungen, wie eigentlich immer Floyd :)
Dustin Klein 14.07.2011
2
Hey Floyd, auch wenn das Thema schon durch war, dafür das du dir noch die Mühe gemacht hast, nehm ich deine Antwort an! :) Danke schön.
13thAngel 14.07.2011
Danke :D Und nochmals sorry fürs Threadnecromating.
Floyd 14.07.2011

Stelle deine .net-Frage jetzt!
TOP TECHNOLOGIES CONSULTING GmbH