2015-07-22 3 views
3

Здравствуйте, я пытаюсь использовать json-server для создания api приложения React Flux ES6, которое я создаю. Но когда я пользователь модуль SuperAgent узел, чтобы сделать запрос от создателя действия данных в функции обратного вызова не определенReact + Flux, ES6, Babel ActionCreate с использованием json-сервера и супер агента, данные не в ответе

Вот мой код

import Dispatcher from '../Dispatcher'; 
import Constants from '../Constants'; 
import request from 'superagent'; 

export default { 
    setQuestions(guides) { 
     Dispatcher.handleViewAction({ 
      type: Constants.ActionTypes.SET_QUESTIONS, 
      data: guides 
     }); 
    }, 

    getQuestionsFromServer() { 
     let self = this; 
     let destination = 'http://localhost:3000/questionnaires'; 
     // request from json service. 
     request 
     .get(destination) 
     .set({ 
       'X-Requested-With': 'XMLHttpRequest' 
      }) 
     .end(function(response) { 
      // response is empty. why??? 
      if (response.ok) { 
       let guideData; 
       guideData = response.body; 
       self.setQuestions(guideData); 
      } 
     }); 
    } 
}; 

Моя вкладка Сети говорит запрос происходит, но я не могу получить доступ ответа в обратном вызове.

+0

Основываясь на этом URL-адресе, я предполагаю, что вы делаете запрос кросс-происхождения, поэтому вам нужно настроить свой макет API для установки заголовка «Access-Control-Allow-Origin», чтобы вы могли получить доступ данные. Я напишу ответ, если вы убедитесь, что это правильно. – loganfsmyth

+0

Извините, не совсем следуя тому, что вы говорите в этом комментарии. – loganfsmyth

ответ

0

Я понял, как сделать этот запрос xhr без суперагентного узла, используя выборки es2015. Смотрите здесь: https://developer.mozilla.org/en-US/docs/Web/API/GlobalFetch/fetch

getQuestionsFromServer() { 
    let self = this; 
    let destination = 'http://localhost:3000/questionnaires'; 
    // request from json service.response.json() 
    fetch(destination) 
     .then(response => response.json()) 
    .then(data => { 
      this.setQuestions(data[0].questions); 
     }) 
     .catch(e => console.log("Error", e)); 

}

Спасибо!