2012-03-18 79 views
1

我一直试图序列化一个XML(jQuery对象)来将字符串POST到服务器。要使用XMLSerializer字符串的jQuery XML:FF引发安全错误

<script> 
$(function(){ 
    myxml = "<tag>just a sample here</tag>"; 
    myxml = $(myxml); 
    if (window.ActiveXObject){ 
     var xmlString = myxml.xml; 
    } else { 
    var oSerializer = new XMLSerializer(); 
    var xmlString = oSerializer.serializeToString(myxml); 
    } 
    console.log(xmlString); 
} 
</script> 

此代码不起作用。 FF会引发安全错误(没有检查其他浏览器,但FF已经足够了,不会运行这个脚本)。

+0

你的代码是无效的。 '$('没有用'''正确关闭)。 – 2012-03-18 12:17:31

+0

是的,抱歉,错字,谢谢! – 2012-03-18 12:21:10

+0

发现问题的根源。 问题是XMLSerializer不能吃jQuery,它只能用真正的XML对象进行提供。与myxml喂养它[0],而不是myxml帮助: 2012-03-18 12:21:55

回答

1

只是为了总结经验。

添加[0]到jQuery选择有助于解决XML类型对象(见上面我的意见):

<script> 
$(function(){ 
    myxml = "<tag>just a sample here</tag>"; 
    myxml = $(myxml); 
    if (window.ActiveXObject){ 
    var xmlString = myxml.xml; 
    } else { 
    var oSerializer = new XMLSerializer(); 
    var xmlString = oSerializer.serializeToString(myxml[0]); // <-- HERE! 
    } 
    console.log(xmlString); 
}) 
</script>