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