Ajax PUT 调用导致非法调用错误
Ajax PUT call resulting in illegal invocation error
我正在尝试修改一个现有的 xml 文档,我从之前的 ajax 调用中存储到一个名为 "XML".
的全局变量中
现在,我正在尝试将 xml 文档中的标题更改为用户想要更改的标题。出于某种原因,我在 ajax put 调用后不断收到 "uncaught type error: Illegal invocation",但是我的成功函数执行了。我的代码如下:
$("#saveButton").click(function(event) {
var url = links[$("#nameInput").val()]; //the url of the xml file to be modified
changeXML(XML); //XML is global variable where i stored the xml file from 'GET' call earlier
$.ajax({
url: url,
data: XML,
type: 'PUT',
dataType: 'xml',
success: window.location.reload()
});
});
function changeXML(xml){
var title = $("#titleInput").val();//obtains user input for title change
$(xml).find('title').first().text(title);//changes title to what user entered
}
我保存的全局变量xml文件实际上正在修改,但是在重新加载window时,我发现应该放置更改的xml文件into 没有变化,只是局部变量之一。我做错了什么?
您在 ajax 调用之前重新加载页面,您必须将一个函数传递给成功参数,而不是调用一个函数。
window.location.reload()
在 ajax 请求发出之前被调用,将其包装在一个函数添加集中作为成功回调。
另外它看起来像 XML 是一个 jQuery 对象,你必须将它转换成一个 xml 字符串。
var oSerializer = new XMLSerializer();
var data = oSerializer.serializeToString(XML);
$.ajax({
...
contentType: 'text/xml', //set the content type not the data type
data: data,
success: function(){
window.location.reload();
}
});
我正在尝试修改一个现有的 xml 文档,我从之前的 ajax 调用中存储到一个名为 "XML".
的全局变量中现在,我正在尝试将 xml 文档中的标题更改为用户想要更改的标题。出于某种原因,我在 ajax put 调用后不断收到 "uncaught type error: Illegal invocation",但是我的成功函数执行了。我的代码如下:
$("#saveButton").click(function(event) {
var url = links[$("#nameInput").val()]; //the url of the xml file to be modified
changeXML(XML); //XML is global variable where i stored the xml file from 'GET' call earlier
$.ajax({
url: url,
data: XML,
type: 'PUT',
dataType: 'xml',
success: window.location.reload()
});
});
function changeXML(xml){
var title = $("#titleInput").val();//obtains user input for title change
$(xml).find('title').first().text(title);//changes title to what user entered
}
我保存的全局变量xml文件实际上正在修改,但是在重新加载window时,我发现应该放置更改的xml文件into 没有变化,只是局部变量之一。我做错了什么?
您在 ajax 调用之前重新加载页面,您必须将一个函数传递给成功参数,而不是调用一个函数。
window.location.reload()
在 ajax 请求发出之前被调用,将其包装在一个函数添加集中作为成功回调。
另外它看起来像 XML 是一个 jQuery 对象,你必须将它转换成一个 xml 字符串。
var oSerializer = new XMLSerializer();
var data = oSerializer.serializeToString(XML);
$.ajax({
...
contentType: 'text/xml', //set the content type not the data type
data: data,
success: function(){
window.location.reload();
}
});