2015-01-28 7 views
7

किसी वेब पेज पर SSL प्रमाणपत्र स्थापित करने के बाद, मुझे समस्या थी जहां https के साथ दिए गए पृष्ठ को AJAX के साथ http endpoint की आवश्यकता होगी। मैं restangular का उपयोग कर रहा हूँ, और मैंने आधार यूआरएल को https रखने के लिए बदल दिया।मिश्रित सामग्री जब मैं AJAX के माध्यम से https पृष्ठ लोड कर रहा हूं, लेकिन ब्राउज़र अभी भी सोचता है कि यह http

Mixed Content: The page at 'https://theaddress.com/somepage' was loaded over HTTPS, but requested an insecure XMLHttpRequest endpoint 'http://theadress.com/api/endpoint'. This request has been blocked; the content must be served over HTTPS. 
:

var uri = location.protocol + "//" + location.host; 
    RestangularProvider.setBaseUrl(uri); 

दिलचस्प बात यह है कि, जब मैं Chrome डेवलपर टूल में अनुरोध दिखाई मैं देख

Request URL:https://theaddress.com/api/endpoint 
Request Headers 
Provisional headers are shown 
Accept:application/json, text/plain, */* 
Referer:https://theadress.com/somepage 
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.93 Safari/537.36 
X-Requested-With:XMLHttpRequest 

तो अनुरोध एक https एक होना चाहिए, फिर भी मैं अभी भी है

मुझे यह भी उल्लेख करना चाहिए कि यह प्रोड सर्वर पर होता है, लेकिन मेरे स्थानीय परीक्षण पर यह ठीक काम करता है (मैंने स्वयं हस्ताक्षर किए हैं एसएसएल प्रमाण) जब मैंने इसे बेस यूआरएल का उपयोग किया है जिसमें https शामिल है।

समस्या क्या हो सकती है?

+0

'https' अनुरोध से प्रतिक्रिया क्या है? हो सकता है कि एक HTTP 302 'http' एंडपॉइंट पर रीडायरेक्ट हो? –

+0

यह 200 प्रतिक्रिया के साथ नियमित जेसन है। कोई पुनर्निर्देशन नहीं – spiroski

उत्तर

8

मैंने एक समान समस्या को ठीक करने की कोशिश में एक अच्छा 4 घंटे बिताया।

सारांश:: आपके अनुरोध

मैं अपने समस्या को ठीक करने में this post उपयोगी पाया करने के लिए उनके पीछे '/' जोड़ने के यहाँ मेरा हल है। असल में, सर्वर पर कोई ख्याल नहीं है अगर आप पीछे से '/' के साथ अपना अनुरोध भेजते हैं या नहीं, क्योंकि यह आंतरिक रूप से '/' पर रूट करता है यदि आप इसे नहीं जोड़ते हैं। हालांकि, अगर रूटिंग आंतरिक रूप से हो रही है (उदा। स्थानीय प्रक्रिया के अनुरोध को पास करने वाले nginx), तो आपको एक http पुनर्निर्देशन मिलता है जो आपका अनुरोध विफल कर देगा।

+0

आप मुझे 1 घंटा बचाते हैं, मैं 3 घंटे –

+0

खोज रहा हूं, ऊपर दिए गए तर्क से मुझे 3.5 घंटे बचाया, धन्यवाद! – user2085368

0

मैंने @ काडी के स्लैश जोड़ने के फिक्स की कोशिश की, और यह काम किया, लेकिन मेरे लिए एक और अधिक सुरुचिपूर्ण समाधान जीईटी से पोस्ट तक अनुरोध को बदलना था, जिसने इस मुद्दे को भी ठीक किया।

अभी भी सुनिश्चित नहीं है कि मूल कारण क्या था।

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