2012-11-20 2 views
10

engellendi Bu kullanıyorum kodu aşağıda aşağı aşağıdaki gibidir olmasıdır. JSP AJAX HTML İçeriği almak içinXDomainRequest Erişim veriyor hatayı

<% response.setHeader("Access-Control-Allow-Origin", "*");%> 

Kodu:

if ($.browser.msie && window.XDomainRequest) { 

    var xdr = new window.XDomainRequest(); 
    xdr.open("GET", "http://dev01.org:11110/crs/qw/qw.jsp?&_=" + Math.random()); 
    xdr.contentType = "text/plain"; 
    xdr.timeout = 5000; 
    xdr.onerror = function() { 
     console.log('we have an error!'); 
    } 
    xdr.onprogress = function() { 
     console.log('this sucks!'); 
    }; 
    xdr.ontimeout = function() { 
     console.log('it timed out!'); 
    }; 
    xdr.onopen = function() { 
     console.log('we open the xdomainrequest'); 
    }; 
    xdr.onload = function() { 
     alert(xdr.responseText); 
    }; 
    xdr.send(null); 
} else { ...... } 

Bir Erişim Engellendi Hata edilir alıyorum ben JSP belirlenen Erişim Kontrol başlıkları var. Herhangi bir yardım çok takdir edilecektir!

http://dev01 ... 

Ve HTTP protokolünden yapmalısınız:

cevap

1

istekler size isteği yapıyoruz sizin örnekte Barındırma sayfasında

aynı şemaya hedeflenmelidir. js komut dosyası bulunduğu Siteniz, varsa : http://dev.org Bunu yapabilirsin: Örneğin

xhr = new XDomainRequest(); 
xhr.open("GET", "http://dev01.org?p=1"); 

ama bu atar "Erişim engellendi":

xhr = new XDomainRequest(); 
xhr.open("GET", "https://dev01.org?p=1"); 
0

Benim deneyim XDomainRequest, Access-Control-Allow-Origin: *'a uymamasıdır. Bunun yerine, alanı belirtmelisiniz. Bu, dinamik olarak oluşturmanız gerekiyorsa HTTP_REFERER başlığından elde edilebilir veya yalnızca bir alandan gelen istekleri bekliyorsanız bunu manuel olarak ayarlayabilirsiniz. This article might help.

<% response.setHeader("Access-Control-Allow-Origin", "http://dev01.org");%>