0

试图通过 ajax 向脚本发送 POST 请求,而不是调用脚本

<script>

 function claimitem() {

     var val=document.getElementById('itemid').value;
        alert(val); //shows as 4 correct
$.ajax({
    type: "POST",
    url:  "scripts/claim.php", 
    data: {id: val},
    dataType: "json",   
    success: function(data) {
        alert("success"); //does not show

    }

}); 


window.location = "profile.php";

}

</script>

我在这里调用 javascript 函数

<input type="submit" onclick="claimitem()" class="btn" value="claim - <?php echo $ebase;?> PP"> 

我的 claim.php 看起来像这样我的 ajax 调用有什么问题???

if($_SERVER['REQUEST_METHOD'] == 'POST'  && isset($_POST['id'])) {
   ...
}
4

3 回答 3

2

当您调用 时$.ajax,您正在启动一个异步任务。此任务涉及请求,不会停止脚本,因此会立即执行以下行。

由于以下行替换了页面,它结束了脚本,包括 ajax 请求。您必须在回调中调用此行以留出 ajax 请求的时间:

$.ajax({
    type: "POST",
    url:  "scripts/claim.php", 
    data: {id: val},
    dataType: "json",   
    success: function(data) {
        alert("success"); //does not show
        window.location = "profile.php";
    }
}); 
于 2013-08-25T15:16:48.617 回答
0

代码看起来还不错,最好为错误添加一些警报,就好像您的 ajax 助手有问题一样。就像是。

error: function(xhr, status, error) {
  var err = eval("(" + xhr.responseText + ")");
  alert(err.Message);
}
于 2013-08-25T15:33:05.323 回答
0

希望您已将此添加到您的头部标签中

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js">
</script>

然后尝试更改输入type="button"

<input type="button" onclick="claimitem()" class="btn" value="claim - <?php echo $ebase;?> PP">
于 2013-08-25T16:59:35.293 回答