Ajax-如何获取数据

Ajax -How to Fetch data

本文关键字:获取 数据 何获取 Ajax-      更新时间:2023-09-26

我一直在尝试使用AjAX获取数据。下面是具有输入值的HTML表单的代码。数据值通过提交按钮被推送到python处理程序。在服务器端,python处理程序将数据存储在数据库中。

现在,我需要首先通过AJAX从数据库中获取数据,并显示是否存在现有值。数据由"是或否"状态组成,非常简单。但我不知道如何使用ajax获取数据,并根据获取的数据正确设置输入值。问题是,我如何通过Ajax调用处理程序来返回值?

<html>
<script language="javascript" src="https://code.jquery.com/jquery-1.11.1.min.js" type="text/javascript"></script>
<script language="javascript" type="text/javascript">
send_data = function(status) {
    $.ajax({
            url: "/Subscription",
            dataType: "json",
            data: {'status' : status},
            type: "POST",
            cache: false
    }).done(function(data, status, xml) {
         var obj = jQuery.parseJSON(data);
         alert(obj.success);
    }).fail(function(jqXHR, textStatus, errorThrown) {
    }).always(function() {
    });
}
$(document).ready(function() {
  $("#subscription").submit(function() {
    send_data($("#switch-1").prop('checked') ? 'yes' : 'no');
      return false;
  });
});
</script>
</head>
<body>
	
<form id="subscription" action="" method="post">
    <label  class="mdl-switch mdl-js-switch mdl-js-ripple-effect" for="switch-1">
    <input type="checkbox" id="switch-1" class="mdl-switch__input" id="status" name="status" />
    <span class="mdl-switch__label">blemtorp@google.com subscription status is: << subscription >> </span>
    <input type="submit" value="Submit" /></label>
</form>
</body>
</html>

非常感谢。任何提示都会很有帮助。

要根据用户输入执行异步调用,必须发出请求,然后明确指定要在请求中执行的操作成功、失败等。

例如:

function send_data(shouldRequest, successCallback) {
  // if ...prop('checked'), run ajax request
  if (shouldRequest) {
    $.ajax({
      url: "/Subscription",
      dataType: "json",
      data: {'status' : status},
      type: "POST",
      cache: false
    }).done(function(data, status, xml) {
      // when request completes, run callback function
      successCallback(data);
    });
  }
}
$("#subscription").submit(function() {
  var checked = $("#switch-1").prop('checked');
  var successCallback = function(data) {
    // perform success actions on data here
  }
  send_data(checked, successCallback);
});

如果将successCallback传递给send_data函数,则只有在异步调用成功完成时才能运行函数。您还可以传入其他函数来处理错误等。

您还可以传入其他函数来处理ajax请求的不同结果,比如处理错误的函数。

通过在ajax中设置dataType:"json",无需在done()回调中使用JSON.parse()

根据您的json使用data.successdata.status

json响应示例{'success':'yes'}{'status':'yes'}