【问题标题】:Odd failed request in Google Chrome console in AngularJS SPAAngularJS SPA 中 Google Chrome 控制台中的奇怪请求失败
【发布时间】:2015-09-03 05:04:45
【问题描述】:

我有一个 AngularJS 单页应用程序,它从 C# Web API 服务发送和检索数据。这两个应用程序都托管在 Amazon Elastic Beanstalk 上。我会定期在 Google Chrome 开发者控制台中收到失败的请求。请求是http://singlepageapp.elasticbeanstalk.com/null。它困扰着我,因为我无法弄清楚它的来源。我的应用程序中的所有 Ajax 请求都来自同一个地方,并且始终具有带有“api/”和 Web API 控制器名称的基本 URI (http://mywebapi.elasticbeanstalk.com/)。开发人员控制台显示以下内容:

Request URL:http://singlepageapp.elasticbeanstalk.com/null
Request Method:GET
Status Code:404 Not Found

导致错误的原始请求如下:

GET /null HTTP/1.1
Host: singlepageapp.elasticbeanstalk.com
Connection: keep-alive
Accept-Encoding: identity;q=1, *;q=0
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.85 Safari/537.36
Accept: */*
Referer: http://singlepageapp.elasticbeanstalk.com/
Accept-Language: en
Range: bytes=0-1244

Chrome 将类型列为“媒体”,将发起者列为“其他”。任何想法将不胜感激。非常感谢。

编辑:我刚刚再次收到错误并注意到请求不是针对我的 Web api,而是针对弹性 beanstalk 单页应用程序。我的逻辑不对这个 URI 发出(直接)请求,所有这些都是由浏览器响应用户单击链接而启动的。在这种情况下,成功保存后一个“页面”上的“保存”按钮会运行以下内容:

$location.path('/next-page');

正是这个触发了错误的请求。但是,通过单击菜单中的链接直接转到此 URI 时,不会发生这种情况。

【问题讨论】:

  • 你能列出任何在 AJAX 请求中总是命中 host + 'api/' + endpoint 的 Angular 代码吗?显然其中一个'api/' + endpoint 计算返回了null,它被字符串化为"null"
  • @AustinMullins 非常感谢您的回复。我刚刚注意到有问题的请求不是针对我的 Web API,而是针对单页应用程序 URI。也就是说,它是由浏览器发起的。我已经编辑了我的问题以反映这一点。

标签: javascript ajax angularjs asp.net-web-api2 single-page-application


【解决方案1】:

好的,找到问题了。有问题的页面允许用户使用他们的网络摄像头拍照。当他们单击“保存”按钮时,他们将被带到另一个页面。但在此之前,逻辑会执行以下操作:

video.src = null;

其中“视频”是页面中的以下元素:

<video class="cssimageclass" autoplay></video>

将 src 设置为 null 会启动浏览器请求。删除它可以解决问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-02-16
    • 2021-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-28
    相关资源
    最近更新 更多