मेरी json फ़ाइल क्यों नहीं मिली है?


85

मेरे पास asp.net प्रोजेक्ट में एक सामग्री फ़ोल्डर में एक json फ़ाइल है:

<projectName>
    \Content
        NBCCJr.json

... और इसे एक्सेस करने का कोड:

$.getJSON('~/Content/NBCCJr.json', function (data) {
    $.each(data, function(i, dataPoint) {
        // Bla
      });
  });
)

... लेकिन जब कोड कहा जाता है तो कुछ भी नहीं होता है; ब्राउज़र कंसोल कहता है, "संसाधन लोड करने में विफल: सर्वर ने 404 (नहीं मिला) की स्थिति के साथ जवाब दिया"

क्यों नहीं मिला है? फ़ाइल के लिए सही मार्ग "फ़ाइल विलेन फ़ाइल नाम" नहीं है?

अपडेट करें

मैंने इसे "व्हेक" बैकवर्ड के साथ भी आज़माया:

$.getJSON('~\Content\NBCCJr.json', function (data) {

... और एक ही परिणाम मिला (" संसाधन लोड करने में विफल: सर्वर ने 404 (नहीं मिला) की स्थिति के साथ उत्तर दिया "

अद्यतन २

फिर मैंने कोशिश की कि यह एक पूर्ववर्ती अजीब बात है।

$.getJSON('Content/NBCCJr.json', function (data) {

... और मुझे कंसोल में यह अस्पष्ट संदेश मिलता है:

*GET http://localhost:9702/Content/NBCCJr.json 404 (Not Found) jquery.js:8724
XHR finished loading: "http://localhost:9702/Content/NBCCJr.json".*

तो यह पाया नहीं गया था और अभी तक वैसे भी भरी हुई है?

अद्यतन 3

जब मैंने ब्राउज़र में फ़ाइल को बदलकर नेविगेट करने का प्रयास किया:

http://localhost:9702/Default.cshtml

...सेवा:

http://localhost:9702/Content/NBCCJr.json

मुझे विंट सेर्फ़, टिम बर्नर्स-ली और / या अल गोर से एक सूचनात्मक WSOD संदेश मिला:

HTTP एरर 404.3 - नहीं मिला वह पेज जो आप रिक्वेस्ट कर रहे हैं वह एक्सटेंशन कॉन्फ़िगरेशन के कारण नहीं दिया जा सकता है। यदि पृष्ठ स्क्रिप्ट है, तो एक हैंडलर जोड़ें। यदि फ़ाइल डाउनलोड की जानी चाहिए, तो MIME मैप जोड़ें।

अद्यतन 4

JAM की बदौलत अब यह काम कर रहा है।

मुझे इसे Web.Config में जोड़ना था:

  <system.webServer>
    <staticContent>
      <mimeMap fileExtension=".json" mimeType="application/json" />
    </staticContent>
  </system.webServer>

अब के लिए कोड के बारे में चिंता न करें, देखें कि क्या आप शुरू करने के लिए अपने ब्राउज़र में फ़ाइल का पता लगा सकते हैं
ली टेलर

मैंने उस कारण के लिए दर्शाई गई लाइन के बाद सभी कोड टिप्पणी की है। IOW, फ़ंक्शन खाली है।
बी क्ले शैनन

क्या आपने अपने ब्राउज़र में json दिखाने का प्रबंधन किया था? यानी एड्रेस बार में सीधे URL डालना?
ली टेलर

@ समूह: यह "क्लच" क्या था?
बी क्ले शैनन

2
अद्यतन 4 मेरे लिए हल! Thks \ o /
रॉडरिगॉर्फ़

जवाबों:


97

क्या आपने हटाने की कोशिश की है ~?

जैसे की:

$.getJSON('/Content/dumboJr.json', function (data) {
    $.each(data, function(i, dataPoint) {
        // Bla
      });
  });
)

IIS को JSON फ़ाइलों की सेवा करने की अनुमति देने के लिए, इसे अपने web.config में जोड़ने का प्रयास करें:

<staticContent>
    <mimeMap fileExtension=".json" mimeType="application/json" />
</staticContent>

हां (अब मेरे पास है)। यह: $ .getJSON ('/ सामग्री / NBCCJr.json', फ़ंक्शन (डेटा) {एक ही प्रतिक्रिया देता है।
बी क्ले शैनन

क्या यह 404 प्रतिक्रिया है? क्या आपने फ़ाइल को सीधे अपने ब्राउज़र में नेविगेट करने की कोशिश की है? क्या सामग्री फ़ोल्डर आपके वेब प्रोजेक्ट के मूल में है?
जैम

हां, पोस्ट कहती है कि। कृपया मेरे अपडेट देखें। हां, सामग्री एक प्रथम-स्तरीय फ़ोल्डर है, जैसा कि मूल पोस्ट में दिखाया गया है।
बी क्ले शैनन

इस पोस्ट पर एक नज़र डालें ।
जमै

यदि आप निर्दिष्ट web.config माइम प्रकार जोड़ते हैं तो आप ठीक हो जाएंगे :)
JAM

22

समाधान आपको MIME प्रकारों में json फ़ाइल एक्सटेंशन प्रकार जोड़ने की आवश्यकता है

विधि 1

IIS पर जाएं, अपना एप्लिकेशन चुनें और MIME प्रकार खोजें

यहां छवि विवरण दर्ज करें

Add from Right पैनल पर क्लिक करें

फ़ाइल नाम एक्सटेंशन = .json

MIME प्रकार = अनुप्रयोग / json

यहां छवि विवरण दर्ज करें

MIME प्रकार में .json फ़ाइल प्रकार जोड़ने के बाद , IIS को पुनरारंभ करें और json फ़ाइल तक पहुँचने का प्रयास करें


विधि 2

उस एप्लीकेशन के web.config पर जाएं और उसमें यह लाइनें जोड़ें

 <system.webServer>
   <staticContent>
     <mimeMap fileExtension=".json" mimeType="application/json" />
   </staticContent>
 </system.webServer>

2

* .Json फ़ाइल को वेबरूट में डालने की कोशिश करें, उप फ़ोल्डर में नहीं। और फिर इसे संदर्भ दें जैसे:

$.getJSON('NBCCJr.json', function (data) {

इस कोर्स के लिए jQuery सिस्टम ऑब्जेक्ट के पिछले समावेश और तात्कालिकता की आवश्यकता है: jquery.min.js या JSON संरचना से: json2-1.0.min.js


1

मैंने .json को .txt और अनुरोध को ठीक काम कर रहा है। मैं परिणाम के बारे में निश्चित नहीं हूँ।


1

यदि आप उपयोग करते हैं ASP.NET Core, तो बस फ़ाइल डालें wwwrootलेकिन यदि आप ASP.NETफ्रेमवर्क का उपयोग करते हैं , तो यह JSON को web.config से एक्सटेंशन की अनुमति देता है:

<staticContent>
    <mimeMap fileExtension=".json" mimeType="application/json" />
</staticContent>

तथा

<location path="Content">
    <system.web>
        <authorization>
            <allow users="*" />
        </authorization>
    </system.web>
</location>
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.