未处理AJAX响应

时间:2016-09-21 20:11:09

标签: javascript php ajax

我已经成功创建了几个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(=&#39; abc&#39;)显示在名为&#39; temp-id&#39;的p-tag中。因为

  • input_1作为firstvar
  • 发送到create_response.php
  • create_response.php获取firstvar并将其设置为$ var1
  • $ var1被回应,这是AJAX的成功功能
  • 成功功能的响应显示在p-tag&#39; temp-id&#39;

但事实并非如此。

有任何想法/建议吗?

2 个答案:

答案 0 :(得分:1)

AFAIK $.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;
    });         
}  

答案 1 :(得分:0)

您可以在ajax调用中的设置对象上将您的函数添加为success属性,而不是像当前一样使用它。

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