2012-01-27 15 views
7

मैं केवल एक आईई में एक HTTPS अजाक्स कॉल के साथ एक समस्या पर फंस गया हूं। आईई लगता है कि मैं एक क्रॉसडोमेन अनुरोध कर रहा हूं, लेकिन मैं नहीं हूं। निम्नलिखित कोड पेज https://mydomain/customer_profile.php से कहा जाता है:आईई में HTTPS अजाक्स अनुरोध के साथ समस्याएं (क्रॉसडोमेन नहीं)

$.ajax({ 
    type: 'post', 
    url: 'https://mydomain/ajax/retrieve_transaction_details.php', 
    data: /* my data is here */, 
    success: function(response){ 
     // do something with the response 
    }, 
    error: function (xhr, ajaxOptions, thrownError){ 
     alert(xhr.status); 
     alert(thrownError); 
    } 
}); 

यह अनुरोध आईई छोड़कर हर ब्राउज़र में ठीक काम करता है। आईई में, त्रुटि फ़ंक्शन "त्रुटि: एक्सेस अस्वीकृत है" देता है। जैसे मैंने कहा, मैं इस पर पूरी तरह से फंस गया हूं, इसलिए कोई अंतर्दृष्टि या विचार बहुत अच्छा होगा।

+1

इसे 'https: // mydomain' के बिना आज़माएं। तो, URL के साथ "/ajax/retrieve_transaction_details.php" के रूप में प्रयास करें। –

+0

मैंने यह कोशिश की है। किसी भी कारण से, यदि मैं एक पूर्ण पथ निर्दिष्ट नहीं करता हूं, तो अन्य ब्राउज़र फिर HTTP पर अनुरोध करने का प्रयास करते हैं, इस प्रकार इसे भी उन में तोड़ते हैं। –

+0

शायद ब्राउज़र के लिए एक चेक जोड़ें जो पथ का पालन करेगा यदि वे आईई का उपयोग संगतता के लिए करते हैं और यदि वे किसी अन्य ब्राउज़र का उपयोग करते हैं तो उसे उस कोड पर अग्रेषित करें जो आप पहले से ही काम कर रहे हैं। – HenryGuy

उत्तर

3

मैं आप अपने HTML के सिर खंड के अंदर <base> टैग का उपयोग कर रहे हैं लगता है; सही?

यह http बजायhttps की ओर इशारा करते है, तो उस आईई टूट जाएगा।

+0

वाह, वास्तव में यह होगा। मैं पूरी तरह भूल गया था कि मैंने अपने हेडर टेम्पलेट में उस टैग को फेंक दिया था। मजेदार यह केवल आईई में तोड़ दिया, लेकिन मुझे लगता है कि यह आईई के लिए है। धन्यवाद! –

2

कोशिश इस तरह अपने अनुरोध में सत्य पर crossdomain की स्थापना:

$.ajax({ 
    type: 'post', 
    url: 'https://mydomain/ajax/retrieve_transaction_details.php', 
    data: /* my data is here */, 
    crossDomain: true, 
    success: function(response){ 
     // do something with the response 
    }, 
    error: function (xhr, ajaxOptions, thrownError){ 
     alert(xhr.status); 
     alert(thrownError); 
    } 
}); 

यह आपके अनुरोध है कि क्या यह क्रॉस-डोमेन है या नहीं की परवाह किए बिना बनाने के लिए अनुमति चाहिए।

+0

हम्म, इसने त्रुटि को "कोई परिवहन" में बदल दिया। दिलचस्प। –

+0

इस पोस्ट पर एक नज़र डालें: http://stackoverflow.com/questions/5241088/jquery-call-to-webservice-returns-no-transport-error –

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