2009-12-30 10 views
8

में रिक्त है I XML प्रतिक्रिया प्राप्त करने और मेरे वेबपृष्ठ में रिपोसेन दिखाने के लिए एक तृतीय पक्ष URL को मारने का प्रयास कर रहा हूं। मुझे आईई और सफारी ब्राउज़र में 200 के रूप में स्थिति और 4 के रूप में तैयार करने के साथ उचित प्रतिक्रिया मिलती है। लेकिन एफएफ 3.5 और क्रोम में मुझे XMLHTTPRequest स्थिति 0 के रूप में मिलती है और reponseText रिक्त स्ट्रिंग के रूप में आता है। मैंने इस AJAX अनुरोध के लिए सामान्य XMLHTTPRequest अजाक्स कोड लिखने के साथ-साथ प्रोटोटाइप 1.5 संस्करण जेएस फ़ाइल का उपयोग करने के कई विकल्पों की कोशिश की, लेकिन फिर भी एफएफ 3.5 में स्थिति और reponseText 0 और रिक्त स्ट्रिंग के समान ही है।XMLHTTPRequest.status 0 देता है और प्रतिक्रिया टेक्स्ट फ़ायरफ़ॉक्स 3.5

कोई भी समस्या इस समस्या को हल करने या वास्तव में इस समस्या को हल करने के तरीके की सराहना की जाएगी। मैंने स्थानीय रूप से अपना कोड निष्पादित करने के साथ-साथ वेबसर्वर पर तैनाती करने का भी प्रयास किया था, फिर भी एफएफ में repsonse समान है।

नीचे मेरी कोड स्निपेट

<script type="text/javascript" src="prototype_ajax.js"></script> 

<script type="text/javascript" language="javascript"> 

new Ajax.Request("I place my URL Here", { 
    method: 'get', 
    onSuccess : function(transport){ 

     var resultDoc = transport.responseText; 
     var rootObj = loadXML(resultDoc); 

    }, 
    onFailure : function(transport){ 
     alert(' On Failure '+transport) 

    } 
}); 

function loadXML(xmlFile) { 
    var xmlDocElement =null; 
    var xmlDoc = null; 

    if (window.ActiveXObject) { 
    try { 
     // code for IE 
     xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); 
     xmlDoc.async=false; 
     xmlDoc.loadXML(xmlFile); 
    } catch (e) { 
     alert("inside catch::"+e.message); 
    } 
    } else { 
    // code for Mozilla, Firefox, Opera, etc. 
    parser=new DOMParser(); 
    xmlDoc=parser.parseFromString(xmlFile,"text/xml"); 

    //xmlDocElement=xmlDoc.documentElement; 
    } 

    //alert('loadXML value '+xmlDoc) 
    return xmlDoc; 
} 

</script> 
+0

क्या उसी पृष्ठ पर "तृतीय पक्ष URL" पृष्ठ है जिस पृष्ठ पर स्क्रिप्ट स्क्रिप्ट है? – CalebD

+0

आपको XML फ़ाइल लोड करने के लिए XMLHttpRequest का भी उपयोग करना चाहिए, न कि DOMParser या XMLDOM जो कि मानक नहीं है और बहुत कम व्यापक रूप से संगत है। – bobince

उत्तर

16

है ऐसा लगता है कि आप same origin policy टकरा है। आपको एक सापेक्ष पथ का उपयोग करना होगा, अन्यथा अधिकांश ब्राउज़र बस खाली responseText वापस कर देंगे।

निम्नलिखित स्टैक ओवरफ़्लो पोस्ट शायद भी आपकी समस्या से संबंधित है:

एक संभव समाधान के रूप में आप सेट कर सकते हैं एक बहुत ही सरल reverse proxy (mod_proxy के साथ अपाचे का उपयोग कर रहे हैं)। यह आपको अपने AJAX अनुरोध में सापेक्ष पथ का उपयोग करने की अनुमति देगा, जबकि HTTP सर्वर किसी भी "दूरस्थ" स्थान पर प्रॉक्सी के रूप में कार्य करेगा।

mod_proxy में एक रिवर्स प्रॉक्सी सेट करने के लिए मूलभूत कॉन्फ़िगरेशन निर्देश प्रॉक्सीपास है। आप आमतौर पर इसका इस्तेमाल देंगी:

ProxyPass  /web-services/  http://third-party.com/web-services/ 

इस मामले में, ब्राउज़र /web-services/service.xml का अनुरोध किया जाएगा लेकिन सर्वर http://third-party.com/web-services/service.xml के लिए एक प्रॉक्सी के रूप में कार्य करके इस काम करेगा।

संबंधित मुद्दे