Nithin B Ответов: 1

Как отправить JSON-файл в браузер с помощью тега <script>, такого как CSS и js-файлы в MVC.NET-что?


У меня есть файл JSON в моем приложении, и я связываю доступ к данным в нем с помощью Java-скрипта.

Примечание: Я не ищу загрузку JSON-файла с помощью Ajax-вызова.

Имя файла Json: PhotoDatabase.json

Содержимое Json:

var photosdatabase =
{
  "photos":
  [
    {
      "photo_id": 27932,
      "photo_title": "Atardecer en Embalse",
      "photo_url": "http://www.panoramio.com/photo/27932",
      "photo_file_url": "http://mw2.google.com/mw-panoramio/photos/medium/27932.jpg",
      "longitude": -64.404945,
      "latitude": -32.202924,
    },....
  ]
}

HTML-вызов JSON-файла:

<script type="application/json" src="~/PhotosDatabase.json"></script>

Java Script доступ к файлу json:

pics = photosdatabase.photos;

То же самое работает в локальных файлах Java script, но не работает в MVC.

В исходниках браузера файл JSON не загружается.

Должен ли я добавить некоторые разрешения, чтобы загрузить файл JSON в браузер?

Что я уже пробовал:

Я попытался добавить это в свой файл веб-конфигурации
<staticContent>
    <mimeMap fileExtension=".json" mimeType="application/json"/>
</staticContent>


Это не сработало. Более того, он испортил все, и ничего не загружалось, как файлы контента и файлы сценариев, а загружался только текст.

1 Ответов

Рейтинг:
11

F-ES Sitecore

Это не json-файл, а javascript-файл. Если это буквально то, что находится в файле, дайте ему расширение js и относитесь к нему как к любому другому файлу js.


Nithin B

Привет, спасибо за ответ. Он действительно работает, когда я меняю расширение на .js, но если я удалю var = из него, то это будет чистый json, не так ли? Тогда это сработает?

F-ES Sitecore

Если вы удалите бит var, то да, это будет чистый json, но наличие материала var означает, что это javascript, поскольку он должен быть проанализирован и выполнен.

Darshani Jayasekara

У меня есть файл .json без "var". но когда я загружаю его как,

<script type="application/json" src="manifest_1.json"></script>

Или
<link rel="manifest" href="manifest_1.json" charset="UTF-8"/>

Он загружается не с типом контента "application/json", а с типом контента "Text/Html". Мне действительно нужно, чтобы он загружался как "application/json", так как это файл манифеста. Есть ли способ решить эту проблему?