2017-11-19 15 views
0

expressを使用して、要求の呼び出しによって取得されたapi応答を返します。Express CORSの応答

router.post('/', function(req, res){ 

    var options = { 
     ... 
    } 

    rp(options) 
     .then(function (parsedBody) { 
      console.log(parsedBody); 
      res.json(parsedBody) 
     }) 

コンソールログには予想されるペイロードが表示されます.Postmanを使用しても、予想されるペイロードが表示されます。

私のクライアントアプリが応答を取得しても、それは次のとおりです。

Response {type: "cors", url: "http://localhost:3001/api/", redirected: false, status: 200, ok: true, …} 

アイブ氏は、CORSミドルウェアを追加してみました:

app.use(function(request, response, next) { 
    response.header("Access-Control-Allow-Origin", "*"); 
    response.header("Access-Control-Allow-Headers", 
        "Origin, X-Rquested-With, Content-Type, Accept"); 
    next(); 
}); 

私のクライアントは非常に簡単ですがフェッチ使用してアプリを反応させる:

fetch('http://localhost:3001/api/', { 
    method: 'POST', 
    dataType: 'JSON', 
    headers: { 
     'Content-Type': 'application/x-www-form-urlencoded', 
    }, 
    body: data, 
}).then((response) => { 
     console.log(response); 
    }).catch((response) => { 
      console.log('Error'); 
    }); 

私のリアクションはアプリはlocalhost:3000とexpress api localhost:3001です。予想ペイロードはverです単純なオブジェクト...

{ 
    athlete: { 
     firstname: "Matt" 
     ... 
    } 
} 

クライアントのfetch successメソッドへのAPI要求応答を転送するにはどうすればよいですか?

答えて

0

問題がCORS関連は、反応アプリ内応答は、JSONとして解析必要とされない:

.then((response) => { 
    console.log(response.json()); 
}) 
関連する問題