Kadir: 401-geschützten Inhalt in JavaScript laden bzw. Login anzeigen

Hallo,

Ich habe eine Google Maps Site, welche im Javascript-Code auf eine KML verweist. Der Browser sollte ein Loginfenster anzeigen, damit die KML geladen wird, das tut er aber noch nicht. Mir fehlt hierbei wohl ein Befehl.

Quelltext:

  
<html xmlns="http://www.w3.org/1999/xhtml">  
<head>  
  
<script src="http://maps.google.com/maps?file=api&v=2&sensor=false&key=ABQIAAAAkqryDmoek5dby3QATKeGQxRBa2LP2L7PmhucSm2-lB9ulrPPsBS5izxkBJUgFW98PVRt2fzgN0dKOA" type="text/javascript">  
</script>  
<script type="text/javascript">  
function initOnLoad()  
{  
  
if (GBrowserIsCompatible())  
{  
var map = new GMap2(document.getElementById("map_canvas"));  
var geoXml = new GGeoXml("http://localhost/geoserver/wms/kml?layers=test:Test");  
map.setCenter(new GLatLng(47, 10), 13);  
map.setUIToDefault();  
map.addOverlay(geoXml);  
}  
  
}  
</script>  
</head>  
  
<body onload="initOnLoad()">  
  
<a href="http://localhost/geoserver/wms/kml?layers=test:Test">Dieser Testlink zeigt eine 401-Login an</a>  
  
<div id="map_canvas" style="width: 600px; height: 400px"></div>  
  
  
</body>  
</html>  

Das Problem hierbei ist  die Zeile:

var geoXml = new GGeoXml("http://localhost/geoserver/wms/kml?layers=test:Test");

Kann ich eine 401-Loginanzeige mittels JS erzwingen? Oder (das wäre mir lieber), falls jemand GeoServer kennt: besteht die Möglichkeit unter Ubuntu 9, eine Loginanzeige für eine einfache HTML.Seite zu erzwingen? Dann würde nämliche die Logininfo der Session gespeichert und die KML wäre freigegeben. Dank im Voraus.

mfg Kadir

  1. hi,

    Kann ich eine 401-Loginanzeige mittels JS erzwingen?

    den 401 wirft der Webserver. Das kannst Du also nicht auf der Seite des UA/DOM erzwingen. Aber wenn Du reinkommen willst, könntest Du per Ajax einen Header mit Authorization: Basic einbauen. Also so

    xhr.setRequestHeader("Authorization", "Basic asdfxy2j9z=");

    Wobei: xhr ist das XHR Objekt und der String 'asdfxy2j9z=' ist

    username:passwort

    in Base64 encodet (Das mach vorher mit Perl, PHP o.ä.).

    Ich hab das so noch nicht getestet aber das sollte funktionieren. Näheres zu HTTP und Headern in meinem neuen Artikel:

    http://rolfrost.de/httproto.html

    Auth. Basic am Ende des Artikels.

    Hotti