ajax请求不通过javascript

时间:2013-08-25 15:14:56

标签: php ajax

尝试通过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'])) {
   ...
}

3 个答案:

答案 0 :(得分: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";
    }
}); 

答案 1 :(得分:0)

代码看起来不错更好地添加一些警告错误,好像你的ajax助手有些问题。 类似的东西。

error: function(xhr, status, error) {
  var err = eval("(" + xhr.responseText + ")");
  alert(err.Message);
}

答案 2 :(得分: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">