2017-11-14 11 views
0

localhost上で実行されているサーバにリクエストを送信し、そのレスポンスを処理してユーザに返信します。 9000が応答を返す:Nodejs POSTリクエストの解析エラー

 var post_data = qs.stringify({ 
      'parameter':'some value' 
     }); 

     var post_options = { 
      uri: 'http://localhost:9000', 

      method: 'POST', 
      headers: { 
       'Content-Type': 'application/x-www-form-urlencoded', 
       'Content-Length': Buffer.byteLength(post_data) 
      } 
     }; 

     var post_req = request(post_options,function(error,response,body){ 
      response.setEncoding('utf-8'); 
      if(response.statusCode==200) 
      { 
       console.log(body); 
       var resp_data = JSON.parse(body); 
       var result = validate(resp_data,expected_output); 
       res.setHeader('Access-Control-Allow-Origin','*'); 
       res.writeHead(200,{"Content-Type":"application/json"}); 
       res.write(JSON.stringify(result)); 
       res.end(); 
      } 
     }); 
     post_req.write(post_data); 
     post_req.end(); 

しかし、コールバック「post_req」の機能で「体」パラメータは、サーバがローカルホスト上で実行されているにもかかわらず、定義されていません。 'error'パラメータをチェックすると、 'Error:Parse Error'と表示されます。私を助けてください。

答えて

0

JSON.parse(body)有効なJSONを渡していますか?そうでなければ、それはあなたにそのエラーを与えるでしょう。

一見有効なJSONを渡している場合は、this questionをご覧ください。オブジェクトまたは配列として渡している可能性があります。

+0

で発見私のpythonサーバーを固定する

ソリューションは、実際には、「応答」パラメータは未定義そのものです。行response.setEncoding( 'utf-8')で、エラーが発生しました。TypeError:未定義のプロパティ 'setEncoding'を読み取れません –

関連する問題