PHP-jQuery AJAX回调未触发

我有一个AJAX请求:

$.ajax({
   url : "proxy.PHP",
   type : "POST",
   data : xmlData,
   contentType : "application/x-www-form-urlencoded",
   processData : false,
   success : function(data) {
       // success
   },
   error : function(data) {
       // error
   },    
});

PHP代理正在回答以下问题:

header('Content-type: text/xml');
echo $someXmlResponse;
exit();

没有回调被触发,无论是成功还是错误.

这不是我第一次来.这是怎么回事?

编辑:一些更新-尾部逗号不是问题,但感谢您指出.控制台未显示任何错误. Firebug显示请求已正确发送和接收.请求返回状态为200 OK的数据正确返回.

感谢所有帮助人员.您的所有反馈都到位了.但是,没有人真正解决了这个问题.看起来像是Firefox 4b5中的错误.

解决方法:

如果服务器返回了无法解析的无效XML,则可能会发生您正在观察的行为.尝试返回保证有效的XML:

header('Content-Type: text/xml'); // <-- Notice the Content-Type header casing
echo '<foo/>';
exit();

同样,您将contentType设置为application / x-www-form-urlencoded,而您的数据参数假定为XML则称为xmlData.通过将processData参数设置为false,您表示应该按原样发布数据,并且不会自动将其转换为application / x-www-form-urlencoded,并且仍在请求中指出此内容类型,这似乎是矛盾的.

另外,如果您希望服务器提供XML,则可以指定dataType:“ xml”.

因此,您的请求可能如下所示:

$.ajax({
    url: 'proxy.PHP',
    type: 'POST',
    contentType: 'text/xml',
    data: '<request/>',
    processData: false,
    dataType: 'xml',
    success: function(data) {

    },
    error: function(data) {

    }
});

相关文章

IE6是一个非常老旧的网页浏览器,虽然现在很少人再使用它,但...
PHP中的count()函数是用来计算数组或容器中元素的个数。这个...
使用 AJAX(Asynchronous JavaScript and XML)技术可以在不...
Ajax(Asynchronous JavaScript and XML)是一种用于改进网页...
本文将介绍如何通过AJAX下载Excel文件流。通过AJAX,我们可以...
Ajax是一种用于客户端和服务器之间的异步通信技术。通过Ajax...