1

次のコードを使用して、高速 POST エンドポイントを呼び出す反応/redux アプリから ajax リクエストを送信しています。
このエンドポイントを Postman でテストしたところ、正しく動作したので、問題がサーバー側にあるのではないと確信しています。したがって、これは私がクライアントで使用しているコードであり、{message: "Missing credentials"}パスポート認証から返されます...再び、サーバーでは問題ありません...ボディパーサーを正しく使用し、ログアウトし、 Postmanを使用req.body.emailreq.body.passwordて正しく印刷されますしかし、次のコードで isomorphic-fetch を使用してこの呼び出しを開始するとreq.body、サーバーに次のように出力されます...

{ '------WebKitFormBoundaryKtn3SHumfq4YBeZ1\r\nContent-Disposition: form-data; name': '"email"\r\n\r\ntest@domain.com\r\n------WebKitFormBoundaryKtn3SHumfq4YBeZ1\r\nContent-Disposition: form-data; name="password"\r\n\r\ntestPassword\r\n------WebKitFormBoundaryKtn3SHumfq4YBeZ1--\r\n' }


import fetch    from 'isomorphic-fetch'
import FormData from 'form-data'

export function signup(payload) {

    return (dispatch) => {

        let formData = new FormData()
        formData.append('email',payload.email)
        formData.append('password',payload.password)

        fetch(`${baseURL}/signup`, {
          method: 'post',
          body: formData,
          headers: new Headers({
            'content-type': 'application/x-www-form-urlencoded; charset=utf-8',
            'Accept': 'application/json, application/xml, text/plain, text/html, *.*'
          }),
        })
        .then((res) => res.json())
        .then((res) => {
            console.log('Fetch signup result:',res)
            console.log('dispatch:',dispatch)
            dispatch({
                type        : Auth_Actions.SignUp_Success,
                userObject  : res
            })
        })
        .catch((err)=>{
            console.error('Fetch signup ERROR:',err)
            dispatch({
                type        : Auth_Actions.SignUp_Fail,
                userObject  : err
            })
        });

    }
}
4

1 に答える 1

0

認証トークンを追加してみましたか? ヘッダーに次のようなものがあります。

  headers: {
    'Accept': 'application/json',
    'Authorization': token.id,
    'Content-Type': 'application/json'
  }
于 2016-10-11T18:27:35.337 に答える