Why does IE11 create an empty mail request, except when Fiddler is running?

My AngularJS $ http sends requests to my C # WebAPI unsuccessful service in Windows 8.1 in Internet Explorer 11. Firefox and Chrome work.

Additional Information:

  • The IT department says that there is no proxy server in our network
  • All settings "automatically detect" and "use proxies" are not checked in all browsers.
  • Requests do not work with IIS on my local host and start the site and service on the local server
  • IE11 Extended Protection Mode is disabled.
  • The request connection header is “keep-alive” (I also tried to “close” and still failed)
  • Sometimes one request will succeed, and only from the second request will everything fail.
  • No error is displayed - the request on the IE network tab simply says “Wait”, and all headers and body are empty.
  • I use HTTP, not HTTPS
  • I tried the meta tag "X-UA-compatible" IE9 and Edge
  • Requests fail for peers using IE11 on their machines.
  • All calls in all browsers work fine when Fiddler works
  • The link to the Visual Studio 2013 browser is disabled (therefore, the SignalRArtery JS file does not constantly cause calls to the server and interferes with testing)

My AngularJS query request is as follows:

var url = UrlService.GetUrlOfApi() + 'Account/SignIn'; var postData = { 'username' : username, 'password' : password }; $http( { 'url': url, 'data': postData, 'method': 'POST' }) .success(function (data) { ... 

My C # service looks like this:

 [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; } } 

Here is what the failed call looks like in IE11, completely empty:

enter image description here

Here's what a successful call looks like when starting Fiddler: enter image description here

Can anyone recommend any other settings for verification or try something?

+3
source share
1 answer

I fixed it. My colleague advised a traditional debugging strategy to get the simplest case to work with - so I made a test post controller web service that made every call:

enter image description here

Then I saw that the only difference between this method and the failed one is BaseController, which contains the following methods:

enter image description here

Then I changed the code to this to remove suspicious async requests and wait: enter image description here

Everything works perfectly. But can anyone explain why? In my Google issue for the last day, I read about IE sending two packets instead of one, like other browsers, and that resources remain open, interfering with connections. But I do not understand how this wait command terminated the connection in only one browser.

0
source