2010-07-20 18 views
12
लिए डेटा दिखाएगी नहीं

मैं NodeJS सेट कर लेते हैं और जब मैं यूआरएल के लिए ब्राउज़ यह डेटा लौटा रहा है: http://184.106.206.235NodeJS jQuery.getJSON

हालांकि, जब मैं $.getJSON का उपयोग कर कि URL को कॉल करने का प्रयास करें, कॉलबैक शो परिवर्तनीय के लिए nulldata चर और "success" के लिए।

मुझे लगता है कि यह एक क्रॉस-डोमेन चीज हो सकती है, लेकिन मुझे आश्चर्य है कि textStatus"success" कहता है कि ऐसा ही है।

मामले में यह उपयोगी है, यहाँ सर्वर साइड जे एस है:

http.createServer(function(req, res){ 
    var output = {message: "Hello World!"}; 
    var body = JSON.stringify(output); 

    res.writeHead(200, {'Content-Type': 'application/json', 'Content-Length': body.length}); 
    res.end(body); 
}).listen(80, "184.106.206.235"); 

कोई भी विचार?

+0

जावास्क्रिप्ट 'http पर होस्ट की है: // 184.106.206.235'? – Anurag

+0

हां, हालांकि मैं एक अलग डोमेन पर होस्ट किए गए "क्लाइंट" जेएस का उपयोग करके इसे एक्सेस करने का प्रयास कर रहा हूं। – marclar

+0

वैसे तो आपकी समस्या तब होगी। क्या "पाठ की स्थिति" है? – Pointy

उत्तर

16

जोड़ें "पहुंच-नियंत्रण-अनुमति दें-उत्पत्ति": "*" अपने writeHead को संपत्ति() कॉल:

res.writeHead(200, { 
    "Content-Type": "application/json", 
    "Access-Control-Allow-Origin": "*" 
}); 
+0

धन्यवाद, यह बहुत अच्छा जवाब है !!! – oivoodoo

+0

जेसन डेटा के लिए सामग्री प्रकार एप्लिकेशन/जेसन होना चाहिए, प्रश्न देखें http://stackoverflow.com/questions/477816/the-right-json-content-type –

3
ये समस्या हो रही किसी के लिए भी

बस एक ध्यान दें, समाधान के ऊपर एक छोटी सी परिवर्तन के साथ मेरे लिए काम किया:

"सामग्री प्रकार": "आवेदन/json"

नहीं "text/json" ।

समाधान के लिए धन्यवाद! यह मुझे पागल बना रहा था।

2

अगर आप express ढांचे का उपयोग कर रहे आप निम्न में से एक कोशिश कर सकते हैं:
1. सामग्री प्रकार पर सेट करने के लिए res.contentType('json');
2. res.send({ some: 'json' }); जो सामग्री प्रकार सेट करेगा और आपके लिए इसे पार्स करेगा।
3. res.json({ user: 'tj' }); शायद इसे करने का सबसे अच्छा तरीका है।

आशा है कि यह मदद करता है :)

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