gpt4 book ai didi

php - 通过 AJAX 发送 XML

转载 作者:可可西里 更新时间:2023-11-01 00:03:27 24 4
gpt4 key购买 nike

我在 jQuery 中创建了一个 xml 文档,如下所示

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');
}
});

即使服务器仅回显“foo”,我也会得到 alert('ajax request completed') 而不是 alert('success')。我究竟做错了什么?这是我创建 xml 文档的方式还是我将它转发到服务器的方式?

没有 xml 文档的 ajax 请求工作正常,我得到了“foo”。

更新#1

precessData 更改为 processData 并将 sucess 更改为 success 后,我得到了 failed to send ajax请求对话框。

当我将 ajax 方法中的数据参数更改为

$.ajax({
...
data : {
data: xmlDocument
},
...
});

我还看到发送ajax请求失败对话框。

服务器端的代码应该没问题,因为它只是

<?php
echo 'foo';
?>

更新#2

我按照 AndreasAL 的回答转换了我的字符串

// Convert to string instead of DOM Elements
xmlDocument = $("<wrap/>").append(xmlDocument).html();

// Url encode the string
xmlDocument = encodeURIComponent(xmlDocument);

但我仍然看到相同的对话框(发送 ajax 请求失败)。所以我认为错误可能在我的 xml 文档中,并使用 AndreasAL 的答案中的代码片段覆盖了我的 xml 文档。

xmlDocument = $('<xml/>');
foo = $('<foo/>').appendTo(xmlDocument);
bar = $('<bar/>').appendTo(foo);

还是一样的行为。

所以我再次检查了我的 xml 文档并在对话框中打印它,它看起来很好。

我想不出错误可能是什么......

最佳答案

编辑:

你打错了 - 它不是 precessData 它是 processData

$.ajax({
url : 'js/foobar.php',
type : 'POST',
precessData : false, // change to processData

然后在 sucess 中再次出现,这应该是 success


尝试:

var xmlDocument = $('<xml/>'),
foo = $('<foo/>').appendTo(xmlDocument),
bar = $('<bar/>').appendTo(foo);

// Convert to string instead of DOM Elements
xmlDocument = $("<wrap/>").append(xmlDocument).html();

// Url encode the string
xmlDocument = encodeURIComponent(xmlDocument);


$.ajax({
url : 'js/foobar.php',
type : 'POST',
processData : false,
contentType : 'text/xml',
data : xmlDocument,
success : function( data ) {
alert('success');
},
error : function() {
alert('failed to send ajax request');
},
complete : function() {
alert('ajax request completed');
}
});

关于php - 通过 AJAX 发送 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9683313/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com