17

SuperAgentがカスタム HTTP ヘッダーをサポートしていることは明らかです。

request
   .post('/api/pet')
   .send({ name: 'Manny', species: 'cat' })
   .set('X-API-Key', 'foobar')
   .set('Accept', 'application/json')
   .end(function(err, res){
     if (res.ok) {
       alert('yay got ' + JSON.stringify(res.body));
     } else {
       alert('Oh no! error ' + res.text);
     }
   });

私の質問:

  • npm を介して SuperAgent を取得している場合、SuperAgent が行うすべてのリクエストに独自の HTTP ヘッダーを挿入するにはどうすればよいですか?
  • 注: 必要に応じて、SuperAgent を拡張する新しい npm パッケージを作成したいと思っています。
4

3 に答える 3

4

したがって、私の場合、すべてのリクエストで csrf トークンをデフォルトのヘッダーとして設定する必要がありました。このような単純なラッパー関数を書くことができます。

custom-agent.js

import SuperAgent from 'superagent';

const csrfToken = document.querySelector('meta[name=csrf-token]').content;

export default {
  fire(method, url) {
    return SuperAgent[method](url).set('X-CSRF-Token', csrfToken);
  }
};

このように使用してください。

import Agent from './custom-agent'

Agent.fire('get', '/endpoint')
// => SuperAgent.get('/endpoint').set('X-CSRF-Token', csrfToken)
于 2016-03-21T11:17:25.260 に答える