2017-08-18 8 views
0

Lors de l'appel API https://mywebsite.com/api/register via le navigateur et il renvoie la bonne réponse du serveur comme { "error": false, "message": "Hello World" } Si nous recevons la même demande de facteur puis il revient avec du contenu html Comme S'il vous plaît activer JavaScript pour afficher le contenu de la page. est ci-dessous le code côté noeud:Noeud api preflight échoué dans postier

var express = require("express"); 

var app = express(); 

var bodyParser = require("body-parser"); 

var router = express.Router(); 

var fs = require('fs'); 
var https = require('https'); 

var cors = require('cors'); 

app.use(cors()); 

app.use(bodyParser.json({limit: '50mb'})); 

app.use(bodyParser.urlencoded({ limit: '50mb', "extended": false })); 

var privateKey = fs.readFileSync('key.pem'); 
var certificate = fs.readFileSync('cert.pem'); 
var passphrase = 'testphrase'; 
var credentials = {key: privateKey, cert: certificate, passphrase:passphrase}; 

router.get("/", function (req, res) { 

    res.json({ "error": false, "message": "Hello World" }); 

}); 
app.use('/api', router); 
var server = https.createServer(credentials, app).listen(8080); 

Le api travaillant dans le navigateur, mais pas avec postier. Quelles seront les erreurs possibles? S'il vous plaît aider. Merci!

+0

Je ne vois pas comment vous pourriez utiliser une URL https 'https: // mywebsite.com/api/register' avec ce code serveur qui ne démarre pas un serveur' https'. Il démarre un serveur 'http'. Ce qui est faux? Votre code dans votre question ou l'URL dans votre questoin? – jfriend00

+0

L'URL https est correcte. Code édité dans la question et ajouté la configuration https. – avinash

+0

Spécifiez-vous le port 8080 dans l'URL dans les deux cas? – jfriend00

Répondre

0

Problème résolu maintenant. Le problème est avec le pare-feu et le proxy.

0

Vous avez manqué de définir l'API pour le serveur

const api = require('./{your api path}/api'); 
// Set our api routes 
app.use('/api', api); 
0

Si ce terme dans Brower cela signifie qu'il est d'obtenir la demande et que vous obtenez JSON du serveur de nœud. Définir l'en-tête du facteur

vérifier quel type d'en-tête utiliser utiliser. Utilisez ce peut être vous utilisez l'application/js, utilisez l'application/JSON

enter image description here

Vous pouvez également vérifier ce que vous demande envoie du navigateur par inspectez la demande ctrl + shift + i, puis dans le réseau. Et puis appuyez sur la demande, maintenant vérifier dans le réseau ce qui est le type d'en-tête et la demande. Vous saurez ce que vous faites mal.

+0

Merci Himanshu pour la réponse. J'ai essayé ceci en ajoutant des en-têtes dans le facteur qui envoient par le navigateur. Mais ne fonctionne toujours pas. – avinash