2012-11-18 18 views
5

मैं एक सरल जावास्क्रिप्ट कोड मैं यहां पाया पर काम कर रहा हूँ: http://googleappsdeveloper.blogspot.com/2011/12/using-new-js-library-to-unlock-power-of.htmlGoogle कैलेंडर API जावास्क्रिप्ट त्रुटि: उत्पत्ति बेमेल

यह मूल रूप से एक गूगल कैलेंडर के लिए प्रमाणीकरण प्राप्त कर लेता है और उसमें शामिल घटनाओं की सूची प्राप्त करता है। मैंने अपना वेब एप्लिकेशन पंजीकृत कर लिया है और क्लाइंट आईडी और एपीआई कुंजी प्राप्त की है।

मुझे इस त्रुटि का सामना करना पड़ रहा है: "त्रुटि: उत्पत्ति विसंगति", मैं लोकलहोस्ट का उपयोग करके स्थानीय रूप से जावास्क्रिप्ट चला रहा हूं और मैंने अपना होमपेज भी Google अनुप्रयोग पंजीकरण में स्थानीयहोस्ट पर सेट किया है।

किसी भी मदद की अत्यधिक सराहना की जाएगी।

कोड:

<html> 
    <body> 
    <div id='content'> 
     <h1>Events</h1> 
     <ul id='events'></ul> 
    </div> 
    <a href='#' id='authorize-button' onclick='handleAuthClick();'>Login</a> 

    <script> 
    var clientId = '506979856128.apps.googleusercontent.com'; 
var apiKey = 'AIzaSyAGbQAZQU0YNL8hK5EU69exIg7_sOg3JoA'; 
var scopes = 'https://www.googleapis.com/auth/calendar'; 

     function handleClientLoad() { 
    gapi.client.setApiKey(apiKey); 
    window.setTimeout(checkAuth,1); 
    checkAuth(); 
} 

function checkAuth() { 
    gapi.auth.authorize({client_id: clientId, scope: scopes, immediate: true}, 
     handleAuthResult); 
} 

function handleAuthResult(authResult) { 
    var authorizeButton = document.getElementById('authorize-button'); 
    if (authResult) { 
    authorizeButton.style.visibility = 'hidden'; 
    makeApiCall(); 
    } else { 
    authorizeButton.style.visibility = ''; 
    authorizeButton.onclick = handleAuthClick; 
    } 
} 

function handleAuthClick(event) { 
    gapi.auth.authorize(
     {client_id: clientId, scope: scopes, immediate: false}, 
     handleAuthResult); 
    return false; 
} 

function makeApiCall() { 
    gapi.client.load('calendar', 'v3', function() { 
    var request = gapi.client.calendar.events.list({ 
     'calendarId': 'primary' 
    }); 

    request.execute(function(resp) { 
     for (var i = 0; i < resp.items.length; i++) { 
     var li = document.createElement('li'); 
     li.appendChild(document.createTextNode(resp.items[i].summary)); 
     document.getElementById('events').appendChild(li); 
     } 
    }); 
}); 
} 
    </script> 
    <script src="https://apis.google.com/js/client.js?onload=handleClientLoad">     </script> 
</body> 
</html> 

उत्तर

2

मैं एक ही त्रुटि मूल खोज के बेमेल today.after सा मिल गया मैं कारण मिला है।

जबकि गूगल एपीआई पहुँच बनाने, हम अधिकृत पुनर्निर्देशन यूआरआई और अधिकृत पुनर्निर्देशन यूआरआई निर्दिष्ट करना होगा।

अब अगर आप अन्य यूआरआई अधिकृत पुनर्निर्देशन यूआरआई में निर्दिष्ट की तुलना में से लॉग इन, फोन error:Unknown Origin is thrown

FYI करें: मैंने देखा है कि आप जावास्क्रिप्ट चल रहे हैं स्थानीय स्तर पर स्थानीय होस्ट का उपयोग करते हुए। इसका मतलब है कि आपने अधिकृत रीडायरेक्ट यूआरआई को लोकलहोस्ट यूरी नहीं जोड़ा है।

लेकिन अपना समय बर्बाद न करें। अधिकृत रीडायरेक्ट यूआरआई लोकलहोस्ट यूरी स्वीकार नहीं करेंगे। यह क्रोम की मूल उत्पत्ति नीति के कारण है। और यदि आप अक्षम-वेब-सुरक्षा ध्वज के साथ क्रोम चलाते हैं, तो यह स्थानीय रूप से काम करेगा भी।

+0

उचित लगता है लेकिन ... '' सीडी "/ एप्लिकेशन/Google क्रोम कैनरी.एप/सामग्री/मैकोज़ /" '' '->' '' ./Google \ क्रोम \ कैनरी - अक्षम- वेब सुरक्षा ''' - '' '' ट्रेस/बीपीटी जाल: 5''' -> '' '' क्रोम अप्रत्याशित रूप से बाहर निकल गया।' –

+0

फ़ायरफ़ॉक्स में इसे चलाएं ... ठीक काम करता है –

+0

@ क्रेग मॉर्गन: क्रोम एफएफ में विस्तार ?? –

1

मूल बेमेल की समस्या पुनर्निर्देशन यूआरआई और जावास्क्रिप्ट मूल के लिए देखभाल करने के लिए जब में Google डेवलपर कंसोलग्राहक आईडी बनाने के द्वारा हल किया जा सकता।

जावास्क्रिप्ट मूल/ साथ नहीं अंत होना चाहिए।

उदाहरण: http://example.com/ -> सही प्रारूप http://example.com होगा।

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

  • कोई संबंधित समस्या नहीं^_^