it-swarm.asia

لماذا لم يتم العثور على ملف json الخاص بي؟

لدي ملف json في مجلد محتوى ضمن مشروع asp.net:

<projectName>
    \Content
        NBCCJr.json

... ورمز الوصول إليه:

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

... ولكن لا يحدث شيء عندما يتم استدعاء الرمز ؛ وحدة تحكم المستعرض تقول: "فشل تحميل المورد: استجاب الخادم بحالة 404 (لم يتم العثور على)"

لماذا لم يتم العثور عليه؟ أليس "اسم ملف تيلدا" هو المسار الصحيح للملف؟

تحديث

كما جربته مع "إضرابات" إلى الوراء:

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

... وحصلت على نفس النتيجة (" فشل تحميل المورد: استجاب الخادم بحالة 404 (غير موجود) ")

تحديث 2

ثم حاولت ذلك بلا إضراب مسبق هكذا:

$.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 مفيدة من Vint Cerf و Tim Berners-Lee و/أو Al Gore تقول:

خطأ HTTP 404.3 - لم يتم العثور على الصفحة التي تطلبها لا يمكن عرضها بسبب تكوين الملحق. اذا كانت الصفحة عبارة عن نص برمجي، أضف مداول. إذا كان يجب تنزيل الملف ، فأضف خريطة MIME.

تحديث 4

بفضل JAM ، إنها تعمل الآن.

اضطررت إلى إضافة هذا إلى Web.Config:

  <system.webServer>
    <staticContent>
      <mimeMap fileExtension=".json" mimeType="application/json" />
    </staticContent>
  </system.webServer>
84
B. Clay Shannon

هل حاولت إزالة ~؟

كما في:

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

للسماح IIS لخدمة ملفات JSON ، حاول إضافة هذا إلى web.config:

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

الحل هو أنك تحتاج إلى إضافة نوع ملحق ملف json في أنواع MIME

طريقة 1

اذهب إلى IIS ، حدد التطبيق الخاص بك وابحث عن أنواع MIME

 enter image description here 

انقر فوق إضافة من اللوحة اليمنى

ملحق اسم الملف = .json

نوع MIME = application/json

 enter image description here 

بعد إضافة .json نوع الملف في أنواع MIME ، إعادة التشغيل IIS ومحاولة الوصول إلى ملف json


الطريقة 2

انتقل إلى web.config لهذا التطبيق وأضف هذه السطور إليه

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

حاول وضع ملف * .json في webRoot ، وليس في مجلد فرعي. ومن ثم الرجوع إليها مثل:

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

يتطلب هذا بالطبع التضمين السابق و إنشاء مثيل لكائن نظام jQuery من: jquery.min.js أو بنية JSON من: json2-1.0.min.js

2
Paul Milleson

لقد غيرت .json إلى .txt والطلب يعمل بشكل جيد. لست متأكدًا من النتيجة. يمكن أن يسبب النص.

1
Pankaj