1

私はsails.jsベータ0.10を使用しています

ファイルのアップロードは小さなファイルの場合は正常に機能しますが、大きなファイルの場合は次のエラーが発生します。

error: Server Error:
error: TypeError: Object #<ServerResponse> has no method 'view'
    at Object.forbidden (/home/mandeep/iqr/esurvey/api/responses/forbidden.js:81:19)
    at ServerResponse.bound [as forbidden] (/home/mandeep/iqr/esurvey/node_modules/lodash/dist/lodash.js:729:21)
    at /home/mandeep/iqr/esurvey/node_modules/sails/lib/hooks/csrf/index.js:65:28
    at createToken (/home/mandeep/iqr/esurvey/node_modules/sails/node_modules/express/node_modules/connect/lib/middleware/csrf.js:82:44)
    at /home/mandeep/iqr/esurvey/node_modules/sails/node_modules/express/node_modules/connect/lib/middleware/csrf.js:48:24
    at routes.before./* (/home/mandeep/iqr/esurvey/node_modules/sails/lib/hooks/csrf/index.js:62:34)
    at routeTargetFnWrapper (/home/mandeep/iqr/esurvey/node_modules/sails/lib/router/bind.js:176:5)
    at callbacks (/home/mandeep/iqr/esurvey/node_modules/sails/node_modules/express/lib/router/index.js:164:37)
    at param (/home/mandeep/iqr/esurvey/node_modules/sails/node_modules/express/lib/router/index.js:138:11)
    at pass (/home/mandeep/iqr/esurvey/node_modules/sails/node_modules/express/lib/router/index.js:145:5) [TypeError: Object #<ServerResponse> has no method 'view']

ただし、csrf を無効にすると完全に機能します。何か案が ?

4

2 に答える 2

2

_csrfこれは、アップロードされたファイルが非常に大きい場合、フィールドが十分に速く解析されないというタイミングの問題である可能性があります。考えられる回避策は、リクエスト パラメータを使用する代わりに、ヘッダーで CSRF トークンを送信することです。これを行うX-CSRF-Tokenには、リクエストのヘッダーを CSRF トークン値に設定します。

于 2014-08-14T20:01:44.377 に答える
1

これに対する別のアプローチは、フォーム内の csrf 隠しフィールドをファイル入力の上に移動することです。次に、最初にサーバーによって解析されます。

于 2014-10-02T19:34:17.947 に答える