2012-11-20 16 views
10

से इनकार किया है यह कोड मैं उपयोग कर रहा हूँ के रूप में नीचे नीचे इस प्रकार किया जाता है। AJAX एचटीएमएल JSP से सामग्री प्राप्त करने के लिएXDomainRequest पहुँच दे रहा है त्रुटि

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

कोड::

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 { ...... } 

मैं एक पहुंच संबंधी त्रुटि से इनकार किया है हो रही है मैं पहुंच-नियंत्रण हेडर के रूप में JSP में सेट की क्या ज़रूरत है। कोई भी सहायताकाफी प्रशंसनीय होगी!

उत्तर

1

अनुरोध होस्टिंग पृष्ठ

अपने उदाहरण में आप के लिए अनुरोध कर रहे हैं के रूप में ही इस योजना के लिए लक्षित किया जाना चाहिए:

http://dev01 ... 

और तुम HTTP प्रोटोकॉल से करना चाहिए।

उदाहरण के लिए: अपनी साइट है, जहां js स्क्रिप्ट स्थित है, तो: http://dev.org आप ऐसा कर सकते हैं:

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

लेकिन इस फेंकता "प्रवेश निषेध":

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

साथ मेरा अनुभव XDomainRequest यह है कि यह Access-Control-Allow-Origin: * का सम्मान नहीं करता है। इसके बजाय, आपको डोमेन निर्दिष्ट करना होगा। यह HTTP_REFERER शीर्षलेख से प्राप्त किया जा सकता है यदि आपको इसे गतिशील रूप से उत्पन्न करने की आवश्यकता है, या यदि आप केवल एक डोमेन से अनुरोध की अपेक्षा कर रहे हैं तो आप इसे मैन्युअल रूप से सेट कर सकते हैं। This article might help.

<% response.setHeader("Access-Control-Allow-Origin", "http://dev01.org");%> 
संबंधित मुद्दे