2012-07-02 8 views
5

आप JQuery.getJSON() का उपयोग कर वर्तमान निर्देशिका में फ़ाइल कैसे पढ़ते हैं?JQuery.getJSON() स्थानीय फ़ाइल को पढ़ने

मैं कुछ सरल (मेरी html फ़ाइल के रूप में एक ही निर्देशिका में मेरी data.json फ़ाइल के साथ) कोशिश कर रहा हूँ:

$.getJSON("./data.json") 

और मैं त्रुटि मिलती है:

XMLHttpRequest cannot load file:///C:/Projects/test/data.json. Origin null is not allowed by Access-Control-Allow-Origin.

मैंने पथ के संयोजन के सभी प्रकार की कोशिश की, लेकिन यह काम करने के लिए ... प्रतीत नहीं होता

संपादित करें: मैं क्रोम का उपयोग कर रहा है, लेकिन मैं सभी ब्राउज़रों में काम करना चाहते हैं ...

+0

आप किस ब्राउज़र का उपयोग कर रहे हैं? – ephemient

उत्तर

9

यदि आप Google क्रोम का उपयोग कर रहे हैं, तो यह जानबूझकर है कि AJAX file:/// पथ कभी काम नहीं करता है।

crbug/40787

1

यह पथ के बारे में नहीं है

यह एक क्रॉस-डोमेन समस्या

मूल रूप से आप jsonp अपने URL में एक कॉलबैक जोड़ने के लिए है, ताकि jQuery स्वचालित रूप से json से अनुरोध प्रकार बदल सकते हैं की जरूरत है

इस देखें है post विस्तार के लिए

2

इसका कारण यह है कि आप अपनी हार्ड ड्राइव से सीधे अपने वेब फ़ाइलों चला रहे हैं। इसमें कई नुकसान हैं, जिनमें से एक आप पाए गए हैं। आदर्श रूप से आप स्थानीय स्तर पर भी एक सर्वर वातावरण में काम करना चाहते हैं। आप एक (फ्री) स्थानीय LAMP सर्वर जैसे XAMPP इंस्टॉल कर सकते हैं। फिर, आप स्थानीय AJAX का उपयोग करने में सक्षम होंगे।

0

स्थानीय LAMP सर्वर स्थापित करने का विकल्प पाइथन के सरल HTTP सर्वर का उपयोग करना है। जब तक आपके पास पाइथन स्थापित हो, तब तक बैश खोलें और पायथन दुभाषिया का उपयोग करें।

अजगर 2 उपयोग के लिए:

python -m SimpleHTTPServer 8000 

अजगर 3 उपयोग के लिए:

python -m http.server 8000 

तो बस स्थानीय होस्ट पर अपने ब्राउज़र: 8000 और अगर यह आप किसी भी मुसीबत फ़ाइल तक पहुँचने नहीं होना चाहिए एक ही निर्देशिका में।

+0

हालांकि 8000 डिफ़ॉल्ट पोर्ट को इसका उल्लेख करने की आवश्यकता नहीं है यदि आप पोर्ट को बदलना नहीं चाहते हैं। – Gahan

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

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