似乎GET没​​有返回任何东西,尽管根据firebug,GET请求正在被空白响应激发

时间:2012-01-31 07:32:25

标签: jquery ajax

<script>
    function country_state(sid) {
        var id = sid;
        console.log("Function called " + sid + "  " + $("#state").val());
        $.get("country.php?id=" + id, function(d) {
            console.log("Function returned " + d);
            alert("Returned: " + d);
            $(".media").html(d);
        });

    }
</script>

在这段代码中,第一个错误日志即将到来但不是第二个。看起来GET没有返回任何东西,尽管根据firebug,GET请求正在激活,并且空白的response.please帮助。

2 个答案:

答案 0 :(得分:0)

您可以尝试错误回调,查看文档: http://api.jquery.com/jQuery.get/

// Assign handlers immediately after making the request,
  // and remember the jqxhr object for this request
  var jqxhr = $.get("example.php", function() {
    alert("success");
  })
  .success(function() { alert("second success"); })
  .error(function() { alert("error"); })
  .complete(function() { alert("complete"); });

  // perform other work here ...

  // Set another completion function for the request above
  jqxhr.complete(function(){ alert("second complete"); });

答案 1 :(得分:0)

尝试改进您的代码,例如:

function send(id) {
            $.get('country.php', { id:id }, function(data) {
            var secureData = eval('(' + data.split('while(1);')[1] + ')');
            if (typeof callback == 'function') callback(secureData);
            alert(data);
        });
}

为什么我要使用这一切?检查一下,你会得到答案: http://insecureweb.com/javascript/secure-your-ajax-request-with-jquery/ (这是一种安全感)

现在,请确保您的PHP文件中您需要ID而不是SID作为您的jQuery函数:

<?php
//$_GET['id'] the name of 'id' was defined on jquery $.get { param:param }
//this is a common mistake (getting confused of what you passed in parameters like for example using ID and SID)
  if ($_GET && isset($_GET['id'])){

    $id = $_GET['id'];
    //do your work here

  }  
?>

希望这会有所帮助,并且可能会以正确的方式澄清你的事情,因为有时当你没有在php中传递if语句时,你会收到一个空白页面(也是空的响应),你可以检查它是否打开了' country.php'直接在浏览器中。

问候。