2012-03-18 2 views
1

Я пытаюсь сериализовать XML (объект jQuery) в строку, чтобы отправить его на сервер.jQuery XML to String с XMLSerializer: 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

Ваш код неверен. '$ (' Неправильно закрывается с помощью ')'. –

+0

Да, извините, опечатка, спасибо! –

+0

Обнаружен корень проблемы. Проблема заключалась в том, что XMLSerializer не может есть jQuery, его можно кормить только реальными объектами XML. Кормление его myxml [0] вместо myxml помогло:

ответ

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> 
Смежные вопросы