jQuery .ajax()请求到PHP代理不接收回显值(FIREFOX ONLY)

以下代码在Chrome和Safari中完美工作,但在Firefox中非常好用。

首先是javascript:

$.ajax('/sn.php',{
    type: 'POST',
    dataType: 'json',
    data: {...stuff},
    complete: function(response){
        console.log(response);
        // do stuff with response...
    }
});

和PHP中继(在我的服务器上),使用cURL()POST或GET从另一个域:

// setup cURL...
$token = curl_exec($handle);
echo $token;
error_log('token='.$token);

$ token在error_log中完美显示,并且在Chrome和Safari中一切正常,但在Firefox中,ajax状态为“错误”,responseText为空。 在这一天里,我的头靠在墙上撞了两天。


Firefox没有像Webkit浏览器那样的本机console.log 。 注释掉或用alert()替换它,我敢打赌它的工作原理。


我可能会在这里咆哮错误的树,但我怀疑这是在你的php代码中调用error_log。 如果你删除它,它有帮助吗?

另外,它也可能有助于在.ajax请求上设置错误处理程序,例如

$.ajax('/sn.php',{
    type: 'POST',
    dataType: 'json',
    data: {...stuff},
    complete: function(response){
        console.log(response);
        // do stuff with response...
    },
    error: function (jqXHR, textStatus, errorThrown){
        console.dir(jqXHR);
        console.log(textStatus);
        console.log(errorThrown);
    }
});

它不会解决问题,但它至少会给你更多的调试输出

编辑更多来自249692的想法。您的web服务器是否为请求返回正确的MIME类型? 你可以尝试做一个beforeSend并设置overrideMimeType


对于ajax请求,Firefox返回Status: 0 。 基于这篇博客文章,我更新了我的表单到onSubmit='return false;' 现在它完美。

链接地址: http://www.djcxy.com/p/46109.html

上一篇: jQuery .ajax() request to PHP proxy not recieving echoed value (FIREFOX ONLY)

下一篇: JavaScript returns undefined