微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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) {

    }
});

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐