显示对GET&amp ;;的响应文本框中的POST请求

时间:2014-12-05 07:53:31

标签: javascript jquery html twitter-bootstrap-3

我正在尝试使用jquery在我的网页上的文本字段中获取GET请求的响应。目前,我有以下代码,我可以在控制台上获得响应。

$(document).on('click', '#get-button', function(e) {
    e.preventDefault();
    $.ajax({
        type: "GET",
        url: $("#url").val(),
        data: '',
        success: function(response, textStatus, XMLHttpRequest) {

            console.log(response);
        }
    });
    return false;
});

$(document).on('click', '#post-button', function(e) {
    e.preventDefault();
    $.ajax({
        type: "POST",
        url: $("#url").val(),
        data: $("#json-data").serialize(),
        success: function(response, textStatus, XMLHttpRequest) {

            console.log(response);
        }
    });
    return false;
});

下面是HTML代码的一部分,我想要适合响应(采用JSON格式)。

<div class="container">
<div class="row">
  <div class="col-md-12">
    <div class="panel panel-danger">
      <div class="panel-heading">JSON Response</div>
      <div class="panel-body text-danger">
        <textarea class="form-control" rows="8" placeholder="server response"></textarea>
      </div>
    </div>
  </div>
</div>

1 个答案:

答案 0 :(得分:2)

  1. 将代码置于就绪函数中,或者将deffer添加到脚本定义中。这样,您的脚本将在加载DOM后执行。
  2. 不要像这样在docuemnt上添加事件,它太大了。你正在使用id,这很好,所以使用它:)它取决于你的DOM大小,但在大多数情况下,通过id找到一个元素,然后添加事件。
  3. 在您的文本框中添加一个ID,它将更有用,更快。
  4. $(document).ready(function(){
    
      $('#get-button').on('click', function(e) {
        e.preventDefault();
        $.ajax({
          type: "GET",
          url: $("#url").val(),
          success: function(response) {
            console.log(response);
            $('.form-control').val(response); // personally I would give your textbox an ID
          }
        });
        return false;
      });
    
      $('#post-button').on('click', function(e) {
        e.preventDefault();
        $.ajax({
          type: "POST",
          url: $("#url").val(),
          data: $("#json-data").serialize(),
          success: function(response) {
            console.log(response);
            $('.form-control').val(response);
          }
        });
        return false;
      });
    })
    

    如果您的网址正确无误,则可以使用。

    请记住,在得到响应之后,您将获得一个JSON对象,您将不得不使用JSON.stringify()将其转换为String。

    我会尽力解释。在Javascript中,我们有对象和简单类型(boolean,String,float等)。当我们想要打印一个简单类型时,我们只看到它的价值。但是当我们想要显示一个Object时,JS引擎就有问题,因为每个对象都可能非常庞大,复杂。这就是为什么在打印对象或JSON(女巫是对象)时我们得到[对象]。 Luckilly JSON非常受欢迎,JS有一个默认的方法,用于将String序列化为JSON(JSON.parse(someString))和其他方式(JSON.stringify(JSONObject))。