发送XML创建jQuery的XML文档如下通过AJAX
var xmlDocument = $('<xml/>');
var foo = $('<foo/>');
var bar = $('<bar/>');
foo.append(bar);
xmlDocument.append(foo);
,并尝试将其转发给服务器。
$.ajax({
url : 'js/foobar.php',
type : 'POST',
precessData : false,
contentType : 'text/xml',
data : xmlDocument,
sucess : function(data) {
alert('success');
},
error : function() {
alert('failed to send ajax request');
},
complete : function() {
alert('ajax request completed');
}
});
即使服务器回声一个“富”而已,我得到的alert('ajax request completed')
而不是alert('success')
。我究竟做错了什么?这是我创建xml文档的方式还是我将其转发到服务器的方式?
没有xml文档的ajax请求工作正常,我得到'foo'回来。
更新#1
改变precessData到过程数据后sucess到成功我得到的failed to send ajax request
对话框。
当我更改了AJAX方法的数据参数
$.ajax({
...
data : {
data: xmlDocument
},
...
});
我也得到了failed to send ajax request
对话框。
在服务器端的代码应该被罚款的原因,而是只
<?php
echo 'foo';
?>
更新#2
我转换我的字符串作为AndreasAL的答案
// Convert to string instead of DOM Elements
xmlDocument = $("<wrap/>").append(xmlDocument).html();
// Url encode the string
xmlDocument = encodeURIComponent(xmlDocument);
,但我仍然获取相同的对话框(failed to send the ajax request
)。所以我认为这个错误可能出现在我的xml文档中,并通过使用AndreasAL答案中的代码snipplet覆盖了我的xml文档。
xmlDocument = $('<xml/>');
foo = $('<foo/>').appendTo(xmlDocument);
bar = $('<bar/>').appendTo(foo);
仍然是相同的行为。
所以我再次检查我的xml文件,并将其打印在对话框中,它看起来很好。
我正在用尽错误的想法......
我试过了,但没有解决。作为对话框,我仍然只获得'ajax请求已完成'。 – 2012-03-13 11:53:05