不处理AJAX响应

AJAX response is not processed

本文关键字:响应 AJAX 处理      更新时间:2023-09-26

我已经成功地创建了几个AJAX调用,但不知何故,下面这个简单的AJAX测试不起作用。我有两个变量是设置与一个表单的输入(这工作)。我们称这两个变量为input_1和input_2。我想把这些输入传递给一个php文件,php文件处理它并返回一些东西。最后,在JS变量中设置响应。现在我将响应放在一个DOM元素中,以查看AJAX调用是否成功。不幸的是,事实并非如此。

我代码:

<html>
<head>
</head>
<body>
<script type="text/javascript">
var input_1 = 'abc'; // this is input of the form
var input_2 = 'def'; // this in input of the form
function generate_content(x,y)
{
$.ajax({
          url: "create_response.php",
          type:"get",
          data:{firstvar:x, secondvar:y} 
        }).success(function(response){
            document.getElementById("temp-id").innerHTML=response;
        });         
}   
generate_content(input_1, input_2);
</script>
<p id="temp-id"></p>
</body>
</html>

和php文件create_response.php:

<?php
$var1=$_GET['firstvar'];
$var2=$_GET['secondvar'];
echo $var1;
?>

因此,我希望input_1 (='abc')显示在名为'temp-id'的p标签中,因为

  • input_1被发送到create_response.php作为firstvar
  • create_response.php获取firstvar并将其设置为$var1
  • 返回
  • $var1,这是AJAX
  • 的成功函数
  • 成功函数的响应显示在p标签'temp-id'

但它不是。

任何想法/建议吗?

$.deferred上没有success方法,也许您应该尝试.then.done

function generate_content(x,y) {
    $.ajax({
      url: "create_response.php",
      type:"get",
      data:{firstvar:x, secondvar:y} 
    }).then(function(response){
        document.getElementById("temp-id").innerHTML=response;
    });         
}  

您可以将您的函数添加为ajax调用中的settings对象的success属性,而不是像您目前那样将其用作方法。

$.ajax({
    url: "create_response.php",
    type:"get",
    data:{firstvar:x, secondvar:y},
    success: function(response){
       document.getElementById("temp-id").innerHTML=response;
    }
});