jQuery Ajax success函数在特定服务器上返回null

jQuery Ajax success函数在特定服务器上返回null,jquery,ajax,Jquery,Ajax,这快把我逼疯了!我的代码在我的计算机上工作,在在线服务器上工作,但在另一台服务器上返回null 有什么想法吗 以下是jQuery Ajax代码: <script type="text/javascript"> $(document).ready(function() { $('#signup').submit(function() { $.ajax({ url: 'mailchimp.php', data: 'a

这快把我逼疯了!我的代码在我的计算机上工作,在在线服务器上工作,但在另一台服务器上返回null

有什么想法吗

以下是jQuery Ajax代码:

<script type="text/javascript">
$(document).ready(function() {
    $('#signup').submit(function() {
        $.ajax({
            url: 'mailchimp.php',
            data: 'ajax=true&email=' + escape($('#email').val()) + '&phone=' + escape($('#phone').val()) + '&uname=' + encodeURIComponent($('#uname').val()) ,
            success: function(msg) {
                $('#form').html(msg);
            }
        });

        return false;
    });
});
</script>

$(文档).ready(函数(){
$(“#注册”).submit(函数(){
$.ajax({
url:'mailchimp.php',
数据:'ajax=true&email='+escape($('.'email').val())+'&phone='+escape($('.'phone').val())+'&uname='+encodeURIComponent($('.'uname').val()),
成功:功能(msg){
$('#form').html(msg);
}
});
返回false;
});
});
我通过直接键入url测试了mailchimp.php;它工作良好,与预期结果一致


谢谢

尝试提供url的绝对路径,然后再试一次。我可能错了,但值得一试。

你是在跨域发布吗?那么您应该使用JSONP。

我仍然不知道确切的问题是什么,但由于存在由encodeURIComponent函数生成的百分比符号,似乎没有执行ajax post

下面是我在ajax函数中所做的。我用连字符替换了所有的%符号

uname = uname.replace(/\%/g, '-');
在我的PHP代码中,我将所有%符号放回原处,而不是连字符

urldecode(str_replace('-', '%', $_GET['uname']))

也许这不是最好的解决方案,但它最终会起作用:)

在php端进行调试,例如,让它将传入的数据写入本地文件或日志。我认为jQuery与此无关。尽管如此,您应该将请求声明为POST或GET,以确保按照服务器期望的方式发送。请检查浏览器中的请求,观察请求的数据和内容类型以及返回的响应。我只是注意到,当我输入阿拉伯语文本时,不会发出POST!当我输入英语时它就起作用了。我不是在跨域发布。