拡張子が .json の JSON を含むファイルがあります。次のようにナンシーを使用してファイルを提供しています。
Get["/schema/{file}"] = parameters =>
{
return Response.AsFile(Directory.GetCurrentDirectory() + @"\sitefiles\schema\" + parameters.file as String);
}
次のようなファイルに対してjQuery ajaxリクエストを行うと:
$.ajax({
url: "/schema/auditResponseSchema.json",
type: 'GET',
contentType: "application/json; charset=utf-8",
dataType: "json",
cache: false,
success: function (responseSchema) {
console.log("get response data - Success");
console.log(responseSchema);
},
timeout: 5000,
error: function (xmlObj, textStatus, errorThrown) {
console.log("get response data - failed. status:" + textStatus + " error:" + errorThrown);
}
});
ファイルを取得しましたが、JSON として認識されません。これは、返される Content-Type が application/octet-stream であるためだと確信しています。
Content-Type を application/json に変更するにはどうすればよいですか?
私はもう試した:
// this returns "application/json in the content.
return Response.AsFile(Directory.GetCurrentDirectory() + @"\sitefiles\schema\" + parameters.file as String).Headers["Content-Type"] = "application/json";
// this returns the location of the file
return Response.AsJson(Directory.GetCurrentDirectory() + @"\sitefiles\schema\" + parameters.file as String);
ファイルの内容を文字列に読み取ってから Response.AsJson を使用する必要がありますか、または Response.AsFile が返すヘッダーを変更する方法はありますか?