繁体   English   中英

AJAX请求在远程主机上不起作用

[英]AJAX request not working on remote host

我有一个AJAX请求,该请求从表单中提取数据并将其发布到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);
         }
    });
}

从您发表的评论

10:33:21.046 "{"readyState":0,"responseText":"","status":0,
"statusText":"error"}" addBeacon.html:34 10:33:21.046 "AJAX error: error : "

状态码为零表示以下两种情况之一:

  1. 您正在运行文件协议
  2. 进行Ajax调用时页面刷新

既然您说这是在生产中,听起来好像是#2的情况。

因此,您需要取消导致页面刷新的操作。 由于您没有显示如何调用发送,因此这里有一些取消操作的基本方法。

onclick="send(); return false" 
onsubmit="send(); return false"

$("#foo").on("click", function(e) {
    send();
    e.preventDefault();
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM