$.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) {
}
});