私はいくつかのRxJSコードを持っており、これはそれの一部されています。しかし、私のサーバーは、paramsは適切なフォーマットになっていないことを私に語っているRxJS v5:paramsでPOSTリクエストを作成するには?
.mergeMap(action => {
const user = store.getState().user;
return ajax.post(`${config.API_BASE_URL}/api/v1/rsvps`, {
rsvp: {
meetup_id: action.payload,
user_id: user.id,
}
})
.map(action => calendarActions.rsvpAdded(action.payload));
})
:
[info] POST /api/v1/rsvps
[debug] Processing by ParrotApi.RsvpController.create/2
Parameters: %{"rsvp" => "[object Object]"}
Pipelines: [:api_auth]
[info] Sent 400 in 10ms
私はJSONを使用してみました。文字列化しても動作しませんでした。それはちょうど私のパラメータを文字列にしました。
rsvp: JSON.stringify({
meetup_id: action.payload,
user_id: 123,
})
Parameters: %{"rsvp" => "{\"meetup_id\":1,\"user_id\":123}"}
この質問はおそらくRxJSの代わりに 'ajax.post()'が実行するものと関連しています。 – martin
(これらの2つのメソッドはヘッダーを含み、自分自身を
JSON.stringify
と呼んでいます)。しかし、それはrxjsから取り込み可能です: 'import {ajax} from 'rxjs/observable/dom/ajax';' – Edmund