title: Unexpected end of JSON input on Promise resolve
body: <p>I am requesting weather data from openweather API and I get "error SyntaxError: Unexpected end of JSON input at Object.parse ()" every time my promise is resolved and I do JSON.pase(daat)
  The JSON I get looks like this:</p>
  
  <pre><code>{
   "coord":{"lon":24.94,"lat":60.17},
   "weather":[{"id":741,"main":"Fog","description":"fog","icon":"50n"}],
   "base":"stations",
   "main":{"temp":273.15,"pressure":994,"humidity":94,"temp_min":273.15,"temp_max":273.15},
   "visibility":500,
   "wind":{"speed":1.5},
   "clouds":{"all":90},
   "dt":1489872000,
   "sys":{"type":1,"id":5019,"message":0.4444,"country":"FI","sunrise":1489811101,"sunset":1489854738},
   "id":658225,
   "name":"Helsinki",
   "cod":200
  }
  </code></pre>
  
  <p>And it seems to be perfectly valid, at least requesting it from normal JS file.
  Although from my React app (see issue: )
  My code looks like this:</p>
  
  <pre><code>httpRequestWeather(weatherNowHTTPQuery + "Helsinki" + weatherAPIToken).then(function(data){
  
      let myData = JSON.parse(data);
       //always returns error when trying to do JSON.parse()
      self.setState({
          weatherConditions: "Weather is here!"
       });
      self.setState({
          //always returns error when trying to do JSON.parse()
          weatherObj: JSON.parse(data)
      });
  
  }).catch(function(err){
      console.log("error", err);
      self.setState({
          weatherConditions: "Buy"
       });
  </code></pre>
  
  <p>However, inside of the http request the data is parsed perfectly fine:</p>
  
  <pre><code>function httpRequestWeather(url) {
      return new Promise(function(resolve, reject) {
          var weatherRequest = new XMLHttpRequest();
          weatherRequest.open("GET", url, true);
          weatherRequest.onreadystatechange = function() {
              if ( this.status === 200) {
                  console.log("request finished and response is ready");
                  console.log(this.response);
                  //this works perfectly fine
  
                  self.setState({
                      weatherConditions: this.response
                   });
                  resolve(this.response);
              } else{
                  reject(new Error("no weather data"));
              }
            };
          weatherRequest.send();
      });
    }
  </code></pre>