【问题标题】:Get AJAX response to display in text box获取 AJAX 响应以显示在文本框中
【发布时间】:2019-11-04 19:48:49
【问题描述】:

对我的 nodejs 服务器进行 AJAX 调用(使用 express 和子进程)并将结果发送回我的客户端后,如何在文本框中显示此响应?当我在 chrome 等开发工具的响应选项卡下查看时,正在发回正确的响应

 else
    { 
    exec( path + filename + '.exe', function ( error , stdout , stderr ){
    var out = { output : stdout};
    var err = { error : stderr};
     log(out);
    res.json(out)

    }); 
    $.ajax('/', {
    url: "http://localhost/server.js",
    data: { code: editor.getValue()},
    type: 'post',

   dataType: JSON,

  success : function(res){
  console.log(res);
    $('#out').val(res) //textarea call
  }

<textarea id = "#out" readonly style="padding:15px; height:209px; width:600px; " > </textarea>

我不知道如何让它显示

{"output":"Hello, World!"}

是我在 f12 响应选项卡中得到的响应

【问题讨论】:

  • 呃,你不能同时使用res.send(out)res.json(out)。选择一个或另一个。如果您想将数据发送回客户端,您可能会使用res.json(out)

标签: javascript html node.js ajax


【解决方案1】:
  success : function(res){
     console.log(res.output);
     var result = res.output;
     $('#out').val(result) //textarea call
  },
    error : function(jqXHR, textStatus, err){
         console.log('Ajax repsponse:',textStatus);
         console.log('Error',err);
  }

您可以在 AJAX 的成功调用中这样写。但请确保您的 res 是 JSON 格式。如果可能,请在您的问题中添加您的回复,以便我可以完全根据您的需要解决您的问题。

【讨论】:

  • 修改了代码,仍然没有显示,添加了我从服务器得到的响应,它按预期工作
  • 我更新了我的代码@c1ic。请粘贴此代码,并请先检查控制台。如果控制台中出现了 Hello world,那么您就在正确的道路上
  • 另外,请在您的文本区域中更改“id = out”而不是“id=#out”
  • 它在控制台中未定义? ...请控制台也只 res ..如果两个控制台都没有出现,那么它会出错
  • 好的,我添加了错误函数。请在你的代码中包含这个并检查 res 是否进入错误
猜你喜欢
  • 1970-01-01
  • 2014-06-15
  • 2019-02-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-30
相关资源
最近更新 更多