2017-07-10 1 views
0

J'ai utilisé le nœud js comme serveur qui répond juste à certaines données Json.Réagissez: erreur TypeError: demande réseau échouée

//https 
 
var privateKey = fs.readFileSync('./ssl/key.pem').toString(); 
 
var certificate = fs.readFileSync('./ssl/cert.pem').toString(); 
 
var credentials = {key: privateKey, cert: certificate}; 
 

 
var httpServer = http.createServer(app); 
 
var httpsServer = https.createServer(credentials, app); 
 
var PORT = 18080; 
 
var SSLPORT = 18081; 
 

 
httpServer.listen(PORT, function() { 
 
    console.log('HTTP Server is running on: http://localhost:%s', PORT); 
 
}); 
 
httpsServer.listen(SSLPORT, function() { 
 
    console.log('HTTPS Server is running on: https://localhost:%s', SSLPORT); 
 
}); 
 

 
app.get('/listUsers', function (req, res) { 
 

 
    res.header('Content-Type', 'application/json'); 
 
    res.header('Access-Control-Allow-Origin','*'); 
 

 
    res.send(JSON.stringify({ a: 1 ,'id':2,'title':3})) 
 
    
 
});

Mon réagi code comme suit:

let http_url = "https://localhost:18081/listUsers"; 
 
     fetch(http_url, init) 
 
      .then((response) => response.json()) 
 
      .then((responseJson) => { 
 

 
       this.setState({message: `${responseJson['id']} - ${responseJson['title']}`}); 
 
      }) 
 
      .catch(e => {console.log(`error ${e}`)});

je peux obtenir vrai résultat de réponse JSON par l'entrée "https://localhost:18081/listUsers" dans le chrome, mais réagissent émulateur toujours me dire "Réagir: Erreur TypeError: Échec de la requête réseau ". Je pense que la raison peut-être que l'en-tête de réponse de nœud n'est pas vrai. Qui peut me donner des suggestions? Merci beaucoup!

+0

try 'responseJson' pour voir s'il y a des données là-bas. Avez-vous fait cela? –

+0

Il ne fonctionne pas, toujours attraper exception "erreur TypeError: requête réseau a échoué". –

+0

qu'est-ce que 'init' est censé être? –

Répondre

0

Avez-vous modifié le code du côté de noeud comme ceci?

res.json({ a: 1 ,'id':2,'title':3}); 

Je pense que vous transmettez des données sous forme de chaîne. Exigence est JSON

d'abord essayer aussi http: // si vous avez obtenu des résultats de succès puis après essayer par https: //

journalisation de la console