javascript获取空数据

时间:2018-12-11 21:34:35

标签: javascript

我有问题。为什么不获取返回数据? 当我在邮递员中尝试此请求时,此请求将返回数据。

邮递员屏幕截图:

enter image description here

Chrome DevTools返回屏幕截图:

enter image description here

javascript代码:

function getAllRestaurant() {
  const requestOptions = {
    method: 'GET',
    headers: { ...authHeader(), 'Content-Type': 'application/json', 'Accept': 'application/json' },
  };

  fetch(store.state.apiUrl + 'restaurant', requestOptions)
      .then(data => console.log('Data from server: ', data))
      .catch(error => console.log('error: ', error));
}

3 个答案:

答案 0 :(得分:0)

dataResponse对象。要查看实际的JSON数据,您需要调用其json()方法,该方法将返回另一个promise。

function getAllRestaurant() {
  const requestOptions = {
    method: 'GET',
    headers: { ...authHeader(),
      'Accept': 'application/json'
    },
  };

  fetch(store.state.apiUrl + 'restaurant', requestOptions)
    .then(response => response.json().then(data => console.log(data)))
    .catch(error => console.log('error: ', error));
}

答案 1 :(得分:0)

谢谢,我要替换

在我的vuex模块中

getAllRestaurant({ commit }) {
    commit('getAllRestaurantRequest');

    restaurantService.getAllRestaurant()
        .then(
            restaurant => commit('getAllRestaurantSuccess', restaurant),
            error => commit('getAllRestaurantFailure', error)
        );
  },

收件人:

  getAllRestaurant({ commit }) {
    commit('getAllRestaurantRequest');

    restaurantService.getAllRestaurant()
        .then(response => response.json().then(data => commit('getAllRestaurantSuccess', data)))
        .catch(error => commit('getAllRestaurantFailure', error));
  },

工作顺利。感谢您的帮助

答案 2 :(得分:0)

这是因为缺少指定的内容类型。这里需要使用 json() 方法将请求类型转换为 json 形式。

只需添加内容类型转换即可解决此问题。

更改以下代码

function getAllRestaurant() {
  const requestOptions = {
    method: 'GET',
    headers: { ...authHeader(), 'Content-Type': 'application/json', 'Accept': 'application/json' },
  };

  fetch(store.state.apiUrl + 'restaurant', requestOptions)
      .then(data => console.log('Data from server: ', data))
      .catch(error => console.log('error: ', error));
}

function getAllRestaurant() {
  const requestOptions = {
    method: 'GET',
    headers: { ...authHeader(), 'Content-Type': 'application/json', 'Accept': 'application/json' },
  };

  fetch(store.state.apiUrl + 'restaurant', requestOptions)
      .then(res => res.json())
      .then(data => console.log('Data from server: ', data))
      .catch(error => console.log('error: ', error));
}

添加 .then(res => res.json()) 将解决此问题。