Мне кажется, я понимаю, о чем вы спрашиваете, но если я полностью на неправильном пути, ниже может показаться немного покровительственным, поэтому заранее извиняюсь ...
Если все, что вы хотите сделать, этоотправьте XML-файл по известному URL через AJAX, это довольно просто в javascript, без каких-либо ссылок, таких как jQuery и т. д. Я предполагаю, что вы уже сгенерировали XML-файл и сохранили его где-то в виде строковой переменной.
Приведенный ниже кодэто немного грязно и довольно просто, но, надеюсь, это должно указать вам правильное направление.Вероятно, есть более эффективные способы получения объекта AJAX, если вы ищете их, но этот метод я использовал целую вечность, и у меня никогда не возникало никаких проблем.
Вам потребуется написать некоторый код для разбораответ сервера, чтобы определить, были ли данные приняты или нет - см. комментарии в коде, где вы будете делать это.Свойства ajaxObj.status
и ajaxObj.responseText
будут вашими друзьями здесь.
function postXMLToServer (serverURL, xmlStr) {
// Declare some variables
var activeXModes, i, ajaxObj, aSync, contentType;
// Set this to false to perform the request synchronously (i.e. execution will block until request has completed)
aSync = true;
// 'application/octet-stream' is treated as raw binary data by any sensible server.
// It might make more sense to use 'text/xml' or some variant depending on your application
contentType = 'application/octet-stream';
// Fetch an AJAX object
activeXModes = ["Msxml2.XMLHTTP","Microsoft.XMLHTTP"];
if (window.ActiveXObject) { // Try ActiveX (for IE)
for (i = 0; i < activeXModes.length; i++) {
try {
ajaxObj = new ActiveXObject(activeXModes[i]);
} catch (e) {}
}
} else if (window.XMLHttpRequest) { // For Mozilla, Safari etc
ajaxObj = new XMLHttpRequest();
} else { // No AJAX
alert('AJAX is not supported in your browser');
return;
}
// Open connection to server
ajaxObj.open('POST',serverURL,aSync);
// Set some request headers - you might be able to get away with not doing this, but it
// should be considered good practice, especially when doing POST requests
ajaxObj.setRequestHeader('Content-Type',contentType);
ajaxObj.setRequestHeader('Content-Length',xmlStr.length);
// Set a callback for asynchronous requests (not called if aSync = false)
ajaxObj.onreadystatechange = function () {
if (ajaxObj.readyState == 4) {
// parse the server response here
}
};
// Send the request
ajaxObj.send(xmlStr);
// if aSync = false, parse the server response here
}
// Example of how to use the function
var myXMLStr = '<?xml version="1.0" encoding="iso-8859-1" ?>\n<toplevel>\n<lowerlevel anattribute="a value">An inner value</lowerlevel>\n</toplevel>';
var myURL = 'http://sub.domain.tld/path/to/document.ext?getparameter=somevalue';
postXMLToServer(myURL,myXMLStr);