Я пытаюсь связаться с сервисом проверки правописания Google, используя jQuery. Служба Google требует, чтобы вы опубликовали XML, а он, в свою очередь, вернет XML-ответ. В IE обратный вызов успеха срабатывает каждый раз, но в браузерах, отличных от IE (протестировано в Firefox и Chrome), обратный вызов ошибки срабатывает каждый раз.
Самая большая разница в том, как создается публикуемый XML. Для IE создается объект ActiveX; для всех остальных браузеров используется DOMParser (пример из w3schools ).
Ниже приведен мой тестовый код (ПРИМЕЧАНИЕ: проверка орфографии представляет собой идентификатор кнопки HTML.) Что мне не хватает или нужно изменить, чтобы успешно публиковать XML из jQuery в разных браузерах?
<script type="text/javascript">
var xmlString = '<?xml version="1.0"?><spellrequest><text>mispell</text></spellrequest>';
function createXMLDocument(s) {
var xmlDoc;
if (window.DOMParser) {
var parser = new DOMParser();
xmlDoc = parser.parseFromString(s, 'text/xml');
} else {
xmlDoc = new ActiveXObject('Microsoft.XMLDOM');
xmlDoc.async = 'false';
xmlDoc.loadXML(s);
}
return xmlDoc;
}
$(function() {
$('#spell-check').live('click', function(e) {
e.preventDefault();
$.ajax({
cache: false,
contentType: 'text/xml',
data: createXMLDocument(xmlString),
dataType: 'xml',
processData: false,
type: 'POST',
url: 'https://www.google.com/tbproxy/spell?lang=en',
success: function(data, textStatus, XMLHttpRequest) {
alert(textStatus);
//debugger;
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert(textStatus);
//debugger;
}
});
});
});