Вы можете сделать это следующим образом.
var myObject = {};
$.ajax({
type: 'get',
url: 'myXML.xml',
dataType: 'xml',
success: function ( data ) {
myObject = data;
}
});
HOWEVER , если вы поместите код, который обрабатывает xml сразу после $.ajax()
, вы столкнетесь со всеми видами ошибок, потому чтовызов не будет завершен.
Лучше, чтобы вы поместили всю свою логику в функцию успеха, например, так.
$.ajax({
type: 'get',
url: 'myXML.xml',
dataType: 'xml',
success: function ( data ) {
//do stuff with data here
//the variable "data" holds all of your xml, parsed into a JavaScript object
}
});
, поскольку успех не будет вызываться, пока сервер не откликнетсязапрос.
РЕДАКТИРОВАТЬ: вам может быть лучше сделать что-то подобное для вашего конкретного варианта использования.
сначала определите функцию, которая принимает аргумент data
и устанавливаетвверх по плагину
startPlugin = function ( data ) {
var newoptions = {};
newOptions.name = data.myXML.valuesItem.name;
newOptions.age = data.myXML.valuesItem.age;
newOptions.gender = data.myXML.valuesItem.gender;
//start the plugin here with newOptions
}
, затем передайте эту функцию ajax в качестве обратного вызова.
$.ajax({
type: 'get',
url: 'myXML.xml',
dataType: 'xml',
success: startPlugin
});
также в $.ajax()
вы можете установить async
в false, чтобы сделать запроссинхронно, но это считается плохой практикой.