title: Http calls are immediately cancelled
body: <p>I have an angular 4 front end with a CakePHP 3 backend. When I make a request to an API end point using my browser or Rest Client I receive a response. But when I send the response from the angular service it immediately shows cancelled in the network. </p>
  
  <p>At first I assumed it was a CORS issue. I have tried both with and without CORS enabled. I also added <code>$this-&gt;Security-&gt;csrfCheck = false;</code> to my AppController.php which led me to believe that the local server is never hit (no breakpoints were firing).</p>
  
  <p>So instead I am looking at Angular side of the equation. I have attempted to set my headers but that also does not work.</p>
  
  <pre><code>import { Headers, Http, Response, RequestOptions } from '@angular/http';
  
  login(loginData) {
      const headers = new Headers({'Content-Type': 'application/json'});
  
      const url:string = this.backendUrl + '/auth/login/?';
  
      return this.Http.post(
          url,
          JSON.stringify(loginData),
          { headers: headers }
      ).map(
          res =&gt; res.json
      ).map(
          response =&gt; function(response) {
              ...
          },
          error =&gt; function(error) {
              ...
          }
      );
  }
  </code></pre>
  
  <p>I am in the process of migrating from 1 to 4. So I know that it worked in Angular 1 using $http requests.</p>
  
  <pre><code>function login(loginData) {
     var = this.backendUrl + '/auth/login/?';
  
     $http.post(url, loginData).then( ... );
  }
  </code></pre>
  
  <p>Here is my component which uses the subscription:</p>
  
  <pre><code>login = function(activeUser):ActiveUser|boolean {
      this.isLoggingIn = true;
  
      return this.LoginService.login(activeUser).subscribe(
          activeUser =&gt; function(activeUser) {
              if (activeUser) {
                  this.activeUser = activeUser;
              } else {
                  this.reset();
              }
  
              return activeUser;
          }.bind(this)
      ).complete(
          function() {
              this.isLoggingIn = false;
          }.bind(this)
      );
  };
  </code></pre>