2017-07-04 5 views
0
var request = require('superagent'); 
var url = 'api/server'; 
request.put(url) 
    .set('Content-Type', 'application/json') 
    .send('{"name":"tj","pet":"tobi"}') 
    .end(function(err, res){ 
     if (err) throw err; 
     console.log(res.text); 
    }); 

上記は私がアップロードデータに使用しているコードです。私がポストに入れ替えると、うまくいきません。私はなぜそれが分からないのですか?スーパーエージェントポストと反応を入れて

また、実際にファイルをアップロードしたいとします。しかし、私は.attach('theFile', file)とputを使用することはできません。私は多くの例を検索しましたが、どれも私のために働いていません。

答えて

1

リクエストを処理するサーバーは、ルート(api/server)と返す応答を判別する方法の両方を読み取ります。その特定のルートのPOST要求を受け入れるように構成されていない場合、要求は失敗します。

また、スーパーエージェントでは、同じ要求でattachsendを使用することはできません。代わりのsend使用field:詳細は

.field('name', 'tj') 
.field('pet', 'tobi') 

読むthe docs

+0

はい、あなたは正しいです。また、応答メッセージの使い方も知っていますか?私が応答メッセージを受け取ったら、それはend()の中にあり、私はどこでそれを使うことはできません。外で宣言した変数は内部でも使用できません。 –

0

おそらくあなたのサーバは、api/server urlでPUTメソッドを期待していて、POSTメソッドではないと予想しています。

関連する問題