我有一个AJAX请求,它从表单中提取数据并将其POST到API。奇怪的是它在localhost上工作得非常好,但是当我上传到远程服务器时无声地失败。我的意思是默默无闻:响应代码是空白的,日志中没有任何内容。我已经检查过Firefox和Chrome。加载jQuery,函数正常启动。代码如下:
function send() {
console.log("preparing");
var beacon = {
beaconID: $("#beaconID").val(),
name:$("#beaconName").val(),
campaignID:$("#campaignID").val(),
clientID:$("#clientID").val()
}
console.log("payload:");
console.log(beacon);
$.ajax({
type: 'POST',
url: '../beaconAPI/index.php/createBeacon',
data: JSON.stringify(beacon),
contentType: "application/json; charset=utf-8",
traditional: true,
success: function (response) {
console.log("done:");
console.log(response);
},
error: function(jqXHR, textStatus, errorThrown) {
console.log(JSON.stringify(jqXHR));
console.log("AJAX error: " + textStatus + ' : ' + errorThrown);
}
});
}
答案 0 :(得分:1)
根据您发布的评论
10:33:21.046 "{"readyState":0,"responseText":"","status":0,
"statusText":"error"}" addBeacon.html:34 10:33:21.046 "AJAX error: error : "
状态代码为零意味着两件事之一:
既然你说它正在制作中,听起来就像是#2的情况。
因此您需要取消导致页面刷新的操作。由于您没有显示如何调用send,以下是取消操作的一些基本方法。
onclick="send(); return false"
onsubmit="send(); return false"
$("#foo").on("click", function(e) {
send();
e.preventDefault();
});