2015-01-20 4 views
5

की आवश्यकता है इस प्रश्न को पोस्ट करने से पहले मैं अधिकांश स्टैक ओवरफ़्लो प्रश्नों से गुजर चुका हूं लेकिन मैं उत्तर नहीं मिलाअनुरोध को 'https: //..com/site/login?' पर रीडायरेक्ट किया गया था, जिसे क्रॉस-मूल अनुरोधों के लिए अस्वीकृत किया गया है, जिसके लिए प्रीफलाइट

मैं क्लाइंट एपीआई एक्सेस करने का प्रयास कर रहा हूं जो ओथ प्रमाणीकरण करेगा, इसलिए जब मैं एपीआई को कॉल करता हूं तो उसे एफबी ऑथ के समान प्रमाणीकरण के लिए पॉपअप विंडो फेंकनी चाहिए, लेकिन मैं अपने क्रोम कंसोल में त्रुटि के साथ समाप्त हो रहा हूं

XMLHttpRequest https://api.springrole.com/authorize लोड नहीं कर सकता है?
स्कोप = XXXX & redirect_uri = http://localhost:8080/CheckRest/springrole.html&response_type=XXXX&client_id=XXXXXXXX। अनुरोध 'https://springrole.com/site/login?api_login=1&scope=XXXX&state=&error=invalid_request', पर रीडायरेक्ट किया गया था जो पूर्व-प्रकाश अनुरोधों के लिए क्रॉस-मूल अनुरोधों के लिए अस्वीकृत है।

मैंने सुरक्षा उद्देश्यों के लिए XXX के साथ कुछ मूल्यों को मास्क किया है। और मेरे अनुरोध की तरह नीचे

$http({ 
     method : 'GET', 

     url : url, 
     headers : { 
      'Content-Type' : 'application/json', 
       "Access-Control-Allow-Origin": "https://api.springrole.com", 
       "Access-Control-Allow-Methods":"GET", 
        "Access-Control-Allow-Credentials": true 
     } 
    }).success(function(data, status, headers, config) { 
     $scope.details.response = JSON.stringify(data); 

     console.log("success" + data) 
    }) 

अगर मैं अनुरोध मैं नीचे दिखाया गया त्रुटि हो रही है में हेडर को दूर लग रहा है

नहीं 'पहुंच-नियंत्रण-अनुमति दें-उत्पत्ति' शीर्षक का अनुरोध किया पर मौजूद है संसाधन। उत्पत्ति 'http://localhost:8080' इसलिए पहुंच की अनुमति नहीं है।

किसी भी सुझाव या आसपास के आसपास की सराहना की जाएगी।

+0

एक्सेस कंट्रोल हेडर आमतौर पर ब्राउज़र द्वारा स्वचालित रूप से आपके द्वारा सेट किए जाने के बजाय स्वचालित रूप से जोड़ा जाना चाहिए। क्या आपने उन्हें हटाने की कोशिश की है? –

+0

@MichaelAaronSafyan अगर मैं उन्हें हटा देता हूं तो मुझे नीचे त्रुटि मिली है 'अनुरोध-नियंत्रण-अनुमति-उत्पत्ति' शीर्षलेख अनुरोधित संसाधन पर मौजूद है। उत्पत्ति 'http: // localhost: 8080' इसलिए पहुंच की अनुमति नहीं है। –

+0

हेडर क्लाइंट पक्ष जोड़ने की यह विधि दिलचस्प है। आमतौर पर, मैंने किसी दिए गए संसाधन तक पहुंच को नियंत्रित करने के लिए 'एक्सेस-कंट्रोल-ऑर्डर-ओरिजिन' हेडर सेट सर्वर पक्ष देखा है ... – War10ck

उत्तर

2

हाँ आप Same Origin Policy में चल रहे हैं जो सुरक्षा कारणों से है। संक्षेप में, यह मूल रूप से आप एक अलग मूल से कुछ खोलने/खोलने का अनुरोध कर रहे हैं जो बहुत सुरक्षित नहीं है। अगर आप चाहते हैं, तो आप तर्क --disable-web-security जोड़कर इसे अस्थायी रूप से क्रोम में अक्षम कर सकते हैं।

तो टर्मिनल से आप

open -a Google\ Chrome --args --disable-web-security

चला सकते हैं मैं इसे अक्सर तो मैं बस जोड़ने और मेरी .bash_profile के रूप में नामित तो मैं इसे आसानी से

# Run Insecure Chrome 
alias insecure-chrome='open -a Google\ Chrome --args --disable-web-security' 

तो टर्मिनल में उपयोग कर सकते हैं समाप्त हो गया करना मैं बस insecure-chrome पर कॉल कर सकता हूं और क्रोम पॉप अप करेगा। यदि आप शीर्ष पर सुरक्षा चेतावनी देखते हैं तो आपको पता चलेगा। चेतावनी सावधान रहना होगा जब इस कर इस

enter image description here

और निश्चित रूप से अनिवार्य चेतावनी की तरह दिखता है। मैं इस मोड में वेब सर्फ नहीं करता लेकिन स्थानीय रूप से काम करना आपको ठीक होना चाहिए।

खिड़कियां उपयोगकर्ताओं तुम कहाँ क्रोम स्थापित किया गया है फ़ोल्डर में नेविगेट और सेट

क्रोम कर सकते हैं।exe --user-data-dir = "सी:/temp" - अक्षम-वेब-सुरक्षा

ऐसा करने से पहले सभी क्रोम उदाहरण बंद करना सुनिश्चित करें या नहीं, यह काम नहीं करेगा।

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

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