使用fetch API GET请求管理CORS

时间:2017-12-07 20:16:43

标签: javascript express cors react-redux fetch

我在localhost有一个终点:8080 /查询

,它呈现以下JSON:

[{"_id":"5a283e4c5a36f4556af34742",
   "firstName":"bob",
   "surname":"hoskins",
   "telephoneNumber":939483948,
   "gender":"male",
   "dayOfBirth":17,
   "monthOfBirth":5,
   "yearOfBirth":1978,"comments":"hello",
   "emailAddress":"jimmsrrs@gmail.com",
   "createdAt":"2017-12-06T19:00:28.401Z"}]

我有一个看起来像这样的动作创建者

export const receiveEnquiries = enquiries => ({
    type: RECEIVE_ENQUIRIES,
    enquiries 

  });
export const fetchEnquiries = () => dispatch => (
    enquiryAPIUtil
        .fetchEnquiries() // this is the fetch call in api.js below
        .then((enquiries) => {dispatch(receiveEnquiries(enquiries))})
    );

我在api.js中有一个看起来像这样的获取请求:

export const fetchEnquiries = () =>
    fetch(`${api}/enquiry`, { headers })
    .then(res => {
        res.json()
        console.log("res",res)
    })
    .then(data => console.log("data",data))

在控制台中,不是记录上面的JSON,而是记录以下内容:

res Response {type: "cors", url: "http://localhost:8080/enquiry", 
redirected: false, status: 200, ok: true, …} 

在express server.js中我有

 const cors = require('cors')
 app.use(cors())

(以及呈现JSON的代码)

我想知道我是否更有可能在服务器端的客户端做错了什么?

1 个答案:

答案 0 :(得分:1)

res.json()返回从JSON解析的对象的承诺。

您忽略其返回的对象,因此您不会获得任何JSON。