1

ここの前の質問では、サーバー側の dart ファイルが、確認メッセージまたはエラーのいずれかを返す FUTURE 電子メール関数を呼び出しています。以下の関数は「印刷」機能では正常に機能していますが、「res.write」機能では機能していません。

server.dart ファイル:

void handlePost(HttpRequest req) {
  HttpResponse res = req.response;
  print('${req.method}: ${req.uri.path}');
  addCorsHeaders(res);

  req.listen((List<int> buffer) {
    SendConfirmationNote2Client(String msg) {
      print('msg: $msg');     // this is working
      res.write(msg);         // this looks to be wrong!
      res.close();
    }
    email()
    .then(SendConfirmationNote2Client);
  }, onError: printError);
}

client.dart ファイルは次のとおりです。

void submitFprm(){   
  request = new HttpRequest();
  request.onReadyStateChange.listen(onData); 
  var url = 'http://127.0.0.1:4040/'; 
  request.open('POST', url);
  request.send(JSON.encode(theData));
}  

void onData(_) {
  if (request.readyState == HttpRequest.DONE && request.status == 200) {                               
    print('request.responseText');   // this is not printing anything!!
    server_output.innerHtml=request.responseText;  // this working  
  } else if (request.readyState == HttpRequest.DONE &&
    request.status == 0) {         
    print('no server');
  }
}

助けて!

4

1 に答える 1

2

それが正しいバグかどうかはわかりませんが、

print('request.responseText');

しかし、これはリテラルテキストを出力しますrequest.responseText。これは代わりに

print(request.responseText);

?

また、Fiddler を実行して、サーバーから返される正確な応答を確認することもできます。問題がサーバー コードにあるのかクライアント コードにあるのかを判断するためです。

于 2014-08-20T16:55:22.273 に答える