2016-04-27 6 views
2

私はajaxコールなしでAPIをリクエストしようとしています(単にajaxコールを行うためにライブラリ全体をインポートするのはなぜですか?)。jsとレビュックス・フェッチとの反応は常に空のjsonを返す

私は先週と移行したReduxの文書に記載されているように、フェッチ関数の流れに従うことにしました。

import fetch from 'isomorphic-fetch'

したがって、私はこの短い機能を持っている:

export function fetchPosts(value) { 
    return dispatch => { 
     dispatch(requestPosts(value)) 
     return fetch(Config.serverUrl + '/' + value, { 
      headers: { 
       'Accept': 'application/json', 
       'Content-Type': 'application/json', 
       Authorization: Config.authorizationToken 
      }, 
     }) 
      .then(response => response.json()) 
      .then(json => dispatch(receivePosts(value, json))) 
    }; 
}; 

が、私はこの次のステップ関数ではconsole.logの操作を行います。

function receivePosts(value, json) { 
    console.log(json); 
    return { 
     type: RECEIVE_POSTS, 
     value, 
     posts: json.data.children.map(child => child.data) 
    }; 
}; 

私は私のことを見ることができますjsonは空のオブジェクトです。

ネットワーク・リターンは、この:

General: Request URL:https://shelob-v2.dev.blippar.com/v2/categories Request Method:OPTIONS Status Code:200 OK Remote Address:52.25.79.166:443

ヘッダー: Access-Control-Allow-Headers:Authorization, Content-Type, X-Pouet-UniqueID, X-Pouet-UniqueRunID Access-Control-Allow-Methods:PATCH, PUT, DELETE Access-Control-Allow-Origin:* Content-Length:0 Content-Type:text/plain; charset=utf-8 Date:Wed, 27 Apr 2016 14:14:36 GMT

私はそれで間違いなく間違って何かをやっていますか?

+0

[ネットワーク]タブ(chrome)でリクエスト/レスポンスを確認できますか? – azium

答えて

2

あなたのredux構文は正しく見えますが、要求はOPTIONS要求でGET要求ではないようです。フェッチオプションにmethod: 'GET'を追加してください。

export function fetchPosts(value) { 
    return dispatch => { 
     dispatch(requestPosts(value)) 
     return fetch(Config.serverUrl + '/' + value, { 
      method: 'GET', // here 
      headers: { 
       'Accept': 'application/json', 
       'Content-Type': 'application/json', 
       Authorization: Config.authorizationToken 
      }, 
     }) 
      .then(response => response.json()) 
      .then(json => dispatch(receivePosts(value, json))) 
    }; 
}; 
+0

確かに、今回は私のjsonがいっぱいです! 私はまだこの出力エラーを持っている理由を知っていますか? '' 'undefined'''の 'children'プロパティを読み取れませんか? receivePostsのjsonに対する扱いは推奨されていませんか? –

+0

このコードは間違っているようです: 'json.data.children.map(child => child.data)'。私はfetchPostsやreceivePostsに 'network.java'を追加したり、network devツールを使ったりして、あなたのレスポンスがどのように見えているかを正確に知ることができます。 – mgmcdermott

関連する問題