这可能是任何问题的重复,但我无法找到解决问题的方法。
我正在构建一个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>
标记中包含该文件!
答案 0 :(得分:0)
这里的问题是你的web.config中没有指定mime类型的json类型,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) {
}
});
希望这有帮助。
答案 1 :(得分:-1)
要引用JSON文件,您可以使用Url.Content()
中的Javascript
方法:
$.ajax({
type: "GET",
url: "@Url.Content("~/Content/your.json")",
contentType: "application/json; charset=utf-8",
dataType: "application/json",
success: function (data) {
},
error: function (err) {
}
});
在这种情况下,我在your.json
文件夹中有一个Content
文件。
希望它有所帮助!