即使有输出,Ajax有时也不会返回

时间:2016-10-22 21:32:27

标签: javascript jquery ajax

我知道我会得到很多负面因素,但无法更好地描述这一点。

有一个网址:localhost/mycall.php

此端点上的PHP代码会休眠一个随机的秒数,然后返回JSON数据。

如果我通过浏览器直接调用此端点,它总是有效,但是如果我尝试通过如下所示的document.ready调用中的AJAX调用它。

$.ajax({
    method: 'POST',
    url: '/mycall.php?' + new Date().getTime() + Math.random(1, 99999),
    data: dataToSend,
    success: function(data) {
        console.log('success');
        console.log(data);
    },
    error: function(jqXHR, textStatus, errorThrown) {
        console.log('error');
        console.log(textStatus);
    },
    complete: function(jqXHR, textStatus) {
        console.log('complete');
        console.log(textStatus);
    }
});

它会在一段时间后返回,但没有数据,也没有触发任何回调。 这种情况发生在Opera,Chrome,甚至是最新的Firefox中。为什么会这样呢?

我忘了提一下,输出有“Content-Type”:“text / plain; charset = utf-8”标题,可能这是问题......?

3 个答案:

答案 0 :(得分:1)

您的url似乎存在问题,也许您不应该写localhost

答案 1 :(得分:1)

同样的事情经常发生在我身上。但是当我看到这个问题时,如果我定义数据格式,那么检查即将到来的响应是正确的json格式。 然后正确编码json。问题解决了。 我不知道你究竟发生了什么。可能这对你有帮助。

答案 2 :(得分:1)

您应在网址前加/。没有它,它将被视为相对路径。