एक वेब अनुप्रयोग विकसित करने की आवश्यकता है जो एक ही समय में एपीआई पर अत्यधिक निर्भर है लेकिन साथ ही एपीआई के समान डोमेन पर भी नहीं रह सकता है, एसिंक्रोनस बनाते समय "समान उत्पत्ति नीति" के आसपास होना मुश्किल हो गया है HTTP अनुरोध (AJAX)। एक बिंदु पर, मुझे अपने कंप्यूटर पर WAMP इंस्टॉल करने की आवश्यकता थी (विंडोज 7 चलाना) और अपाचे के साथ एक रिवर्स प्रॉक्सी कॉन्फ़िगर करने के लिए। एक ही व्यक्ति ने मुझे दिया अपाचे निर्देशों bellow कि मैं c:\windows\system32\drivers\etc\hosts
पर httpd.conf
फ़ाइल को जोड़ा गया, देव नामित आईपी 127.0.0.1 के लिए एक अन्य नाम बनाना मुझे बता के बाद, फ़ाइल के भीतर (जो मैंने किया था):क्रॉस-डोमेन AJAX के लिए उपयोग किए जाने के लिए अपाचे के साथ एक रिवर्स प्रॉक्सी को सही तरीके से कॉन्फ़िगर कैसे करें?
LoadModule headers_module modules/mod_headers.so
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule ssl_module modules/mod_ssl.so
Listen 127.0.0.1:8080
ProxyRequests off
<Proxy *>
Order deny,allow
Deny from all
Allow from 127.0.0.1
</Proxy>
<VirtualHost dev:8080>
ProxyPass/https://app.somesite.com:5002/
ProxyPassReverse/https://app.somesitecom:5002/
ProxyPassReverseCookieDomain app.somesite.com dev
Header edit Location ^https://dev(:8080)?(.+)$ http://dev$1$2
Header edit Set-Cookie "(^.+); secure; HttpOnly$" "$1; HttpOnly"
SSLProxyEngine on
SSLProxyVerify none
</VirtualHost>
चूंकि सर्वरों को कॉन्फ़िगर करने की बात आने पर मैं एक पूर्ण नौसिखिया हूं, इसलिए मैंने निर्देशों को सौंपा और सौभाग्य से पर्याप्त रूप से पर्याप्त किया, प्रॉक्सी ने काम किया। जब मैं ब्राउजर के एड्रेस बार का उपयोग करने के लिए उपयोग करता हूं, तो यह एपीआई से सही प्रतिक्रिया देता है, उदाहरण के लिए, http://dev:8080/a/w/currencies
।
दुर्भाग्य से, एक ही यूआरएल (कोड bellow) के लिए एक AJAX अनुरोध क्रोम मुझे XMLHttpRequest cannot load http://dev:8080/a/w/currencies. Origin http://dev is not allowed by Access-Control-Allow-Origin.
त्रुटि देता है।
$.ajax({
url: "http://dev:8080/a/w/currencies",
type: "GET",
dataType: "json",
data: {
},
success: function(data){
console.log(data);
}
});
तो इस प्रॉक्सी के लिए AJAX के साथ काम करने के लिए अभी भी क्या किया जाना चाहिए? मुझे alias
निर्देश के बारे में कुछ बताया गया है, लेकिन विशिष्ट और स्पष्ट नहीं है, इसलिए यह मेरे अनुभवहीन मस्तिष्क को ज्यादा समझ में नहीं आया।
पीएस: इसके अलावा, मुझे बताया गया है कि "समस्या यह है कि आपको देव: 80 से फाइलें मिल रही हैं और dev से AJAXing: 8080"। मेरे अनुभवहीनता को देखते हुए, न ही यह बहुत समझ में आता है।
आप यूआरएल के साथ ajax लिख सकते है : 5002/' app.somesite.com पर apache की कॉन्फ़िगरेशन क्या है? क्या यह 5002 बंदरगाह सुन रहा है? –
AJAX के पास रिवर्स प्रॉक्सी करने या हस्तक्षेप करने के लिए कुछ भी नहीं है, यह केवल आपकी प्रॉक्सी कॉन्फ़िगरेशन है जो आपके लिए सही तरीके से काम करनी चाहिए। –
यदि आपका गलती –