【发布时间】:2014-06-13 04:43:57
【问题描述】:
所以我在 Web 浏览器中打开了网络捕获,以查看来自 AngularJS 的 ajax 调用。每次拨打电话,似乎都有两个结果:
URL|Protocol|Method|Result|Type|Received|Taken
/p/jobs/03512dc8-6f25-49ea-bdff-0028ac2023cb|HTTP|GET|301|text/html|408 B|< 1 ms
/p/jobs/03512dc8-6f25-49ea-bdff-0028ac2023cb|HTTP|GET|200|application/json|0.79 KB|15 ms
它看起来是在尝试先请求 HTML,得到 301,然后再请求 JSON。如何消除对 HTML 的请求?我正在使用 $resource 来执行此操作,但我也想查看 $http 的示例。
此外,接收框架是 NancyFX for .NET。也许我需要指定一个标头以确保它始终返回 JSON?我已经尝试过“接受”标题,但似乎没有什么区别。就好像 Nancy 总是尝试在切换到 JSON 之前先返回一个 View。
Javascript 代码(稍微翻译自 TypeScript):
$resource(jobUrl, {}, { get: {method: "GET", isArray: false }});
南希代码:
public class JobService : NancyModule
{
public static readonly string Prefix = "/p/jobs";
WebLogger logger;
public JobService(WebLogger logger)
: base(Prefix)
{
this.logger = logger;
Get[""] = _ => GetJobs();
Get["/{id}"] = _ => GetJob(_.id);
Get["/{id}/nodes"] = _ => GetNodes(_.id);
Get["/{id}/faults"] = _ => GetFaults(_.id);
}
Job GetJob(string id)
{
lock (logger)
{
if (logger.JobGuid != id)
{
Context.Response.StatusCode = HttpStatusCode.NotFound;
return null;
}
return MakeJob();
}
}
【问题讨论】:
-
您能否发布处理这些请求的 Nancy 模块以及导致这些请求的 Javascript?
-
好的,我已经发布了代码。