2016-01-18 17 views
5

में एक्सेस-कंट्रोल-स्वीकृति-हेडर्स द्वारा अनुमति नहीं है, जब मैं अपना वेबपृष्ठ लोड करने का प्रयास करता हूं तो मुझे निम्न त्रुटि मिलती है: अनुरोध हेडर फ़ील्ड एक्सेस-कंट्रोल-अनुमति प्रीफलाइट प्रतिक्रिया में एक्सेस-कंट्रोल-स्वीट-हेडर द्वारा ऑरिजिन की अनुमति नहीं है।अनुरोध हेडर फ़ील्ड एक्सेस-कंट्रोल-अनुमति-उत्पत्ति को प्रीफलाइट प्रतिक्रिया

मैंने अन्य उत्तरों को देखा है जो इस मुद्दे का जवाब देते हैं और वे सीओआरएस समर्थन की कमी का संकेत देते हैं। भ्रमित बात यह है कि मेरे पास कॉर्स का समर्थन है! कम से कम मुझे लगता है कि मैं कर रहा हूँ।

मैं अपने कोणीय जे एस सामने के छोर को Zingchart कनेक्ट करने के लिए कोशिश कर रहा हूँ और (स्थानीय होस्ट पर: 3000) मेरी REST API से डेटा प्राप्त करने के लिए एक AJAX अनुरोध का उपयोग

यहाँ मेरी AJAX कॉल है:

window.feed = function(callback) { 
    $.ajax({ 
     type: "GET", 
     dataType: "json", 
     headers: { 
      Accept: "application/json", 
      "Access-Control-Allow-Origin": "*" 
     }, 
     url: "http://localhost:3000/readings", 
     success: function (data) { 
      var mem = data.mem.size/10000; 
      var tick = { 
       plot0: parseInt(mem) 
      }; 
      callback(JSON.stringify(tick)); 
     } 
    }); 

मेरे REST API का कार्यान्वयन निम्नलिखित शामिल हैं:

// CORS Support 
app.use(function(req, res, next) { 
    res.header('Access-Control-Allow-Origin', '*'); 
    res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE'); 
    res.header('Access-Control-Allow-Headers', 'Content-Type'); 
    next(); 
}); 

मेरे REST API इस ट्यूटोरियल की मदद से बनाया गया था: https://www.youtube.com/watch?v=OhPFgqHz68o

उत्तर

6

"headers" और "dataType" बाहर निकालें। आपका अनुरोध तब इस तरह दिखेगा:

$.ajax({ 
    type: "GET", 
    url: "http://localhost:3000/readings", 
    success: function (data) { 
     var mem = data.mem.size/10000; 
     var tick = { 
      plot0: parseInt(mem) 
     }; 
     callback(JSON.stringify(tick)); 
    } 
}); 

आपके शीर्षलेख प्रीफलाइट अनुरोध को ट्रिगर कर रहे हैं।

आप कोणीय उपयोग कर रहे हैं, मैं अत्यधिक AJAX के लिए jQuery का उपयोग नहीं करने की सलाह देते हैं और इसके बजाय कोणीय के built-in $http service का उपयोग चाहते।

मैं ज़िंगचर्ट टीम पर हूं। होलर अगर हम आपके चार्ट के साथ मदद कर सकते हैं।

+0

धन्यवाद पैट्रिक! यदि निर्मित $ http सेवा बेहतर काम करती है, तो मैं इसका उपयोग करने से खुश हूं। क्या आपके पास कोई उदाहरण है जिसका मैं उपयोग कर सकता हूं? मैं क्या करूँगा बैकएंड से अपना डेटा प्राप्त करने के लिए इस लाइब्रेरी का उपयोग करें और फिर प्रतिक्रिया को पार्स करें, इसलिए यह ज़िंगचार्ट्स प्रारूप आवश्यकताओं का पालन करता है, मैं नया हूं, क्या यह सही है? – Django

+0

पहला: अगर उत्तर आपकी समस्या हल करता है, तो कृपया इसे स्वीकार करें। | सही लगता है। ऊपर दिए गए लिंक में $ http सेवा का उपयोग करने के बारे में बहुत सारी जानकारी है। हमारे पास यहां उपलब्ध कोणीय के साथ AJAX का उपयोग करके एक डेमो भी है: http://codepen.io/zingchart/pen/pjerjY –

+0

धन्यवाद मैं निश्चित रूप से आपका उत्तर स्वीकार करूंगा। डेवलपर टूल्स में, आपका कोड मुझे निम्न समस्या देता है: Uncaught TypeError: अपरिभाषित की संपत्ति 'आकार' नहीं पढ़ सकता। क्या आप जानते हैं कि यह क्यों हो सकता है? – Django

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