繁体   English   中英

从文件加载JSON数据

[英]Loading JSON data from a file

这可能是任何问题的重复,但是我无法找到解决问题的方法。

我正在构建一个MVC4应用程序,其中我想使用AJAX从另一个JavaScript文件中加载JSON数据。

为此,我尝试使用$.getJSON()$.ajax()$.get()其他类似的函数加载数据。 这是一个简单的AJAX调用,没什么花哨的! 最终,我意识到我需要对该控制器/动作进行此调用,以加载JSON并将其返回。 这个解决方案对我有用。

$.ajax({
    type: "GET",
    url: "/controller/action", // <-- How can I refer to the JSON file directly here?
    contentType: "application/json; charset=utf-8",
    dataType: "application/json",
    success: function(data) {
    },
    error: function(err) {
    }
});

我想知道是否还有其他方法可以在视图本身中使用JavaScript加载此文件而无需调用任何控制器/动作?

注意:该文件是.json文件,而不是.js文件。 我不想在任何<script>标记中包含文件!

这里的问题是,您在web.config中没有指定json类型的mime类型,并且IIS / IIS Express返回404错误。

尝试像这样修改您的web.config:

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

您还需要将dataType更改为json,而不是application / json:

$.ajax({
    type: "GET",
    url: "Content/your.json",
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function (data) {
    },
    error: function (err) {
    }
});

希望这可以帮助。

要引用JSON文件,可以在Javascript使用Url.Content()方法:

$.ajax({
    type: "GET",
    url: "@Url.Content("~/Content/your.json")", 
    contentType: "application/json; charset=utf-8",
    dataType: "application/json",
    success: function (data) {
    },
    error: function (err) {
    }
});

在这种情况下,我在Content文件夹中有一个your.json文件。

希望能帮助到你 !

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM