![](/img/trans.png)
[英]Why .Net HttpClient post request is slow (when fiddler is not running)?
[英]Why does IE11 create blank post request except when Fiddler is running?
我的AngularJS $ http发布请求我的C#WebAPI restful服务在Internet Explorer 11的Windows 8.1上失败。Firefox和Chrome都可以正常工作。
更多细节:
我的AngularJS请求调用如下所示:
var url = UrlService.GetUrlOfApi() + 'Account/SignIn';
var postData = { 'username' : username, 'password' : password };
$http(
{
'url': url,
'data': postData,
'method': 'POST'
})
.success(function (data)
{
...
我的C#服务看起来像这样:
[RoutePrefix("Account")]
[AllowAnonymous]
public class AccountController : BaseController
{
[ResponseType(typeof(SecureResponseModel))]
[Route("SignIn")]
[HttpPost]
public IHttpActionResult SignIn(HttpRequestMessage request)
{
try
{
var userSignInDetails = GetPostData<AuthenticationRequestMessage>(request);
var token = _hisManager.AuthenticateUser(userSignInDetails.Username, userSignInDetails.Password);
return new SignInResponseMessage(token, ApiErrorCode.success, Request);
}
catch(APIException e)
{
throw;
}
}
这就是IE11中的失败调用,完全是空白的:
这就是Fiddler运行时成功调用的样子:
任何人都可以推荐任何其他设置来检查或尝试一下吗?
我修好了。 我的同事建议采用传统的调试策略来使最简单的情况起作用 - 所以我做了一个测试后控制器Web服务,它可以处理每个调用:
然后我看到这个方法与失败的方法之间的唯一区别是BaseController,它包含以下方法:
然后我将代码更改为此以删除可疑的异步和等待命令:
现在一切都很完美。 但有人可以解释为什么吗? 在谷歌搜索这个问题的过去一天,我已经读过关于IE发送两个数据包而不是像其他浏览器一样的数据包,以及关于资源被打开干扰连接。 但是我不明白这个await命令如何在一个浏览器中破坏连接。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.