Я ищу очень маленькую (одну линейку) библиотеку JavaScript Ajax, чтобы добавить в первую строку небольшого скрипта, чтобы сделать некоторые запросы.Небольшая библиотека JavaScript Ajax
Я уже пробовал:
Но они не работают вообще. Альтернативы?
Я ищу очень маленькую (одну линейку) библиотеку JavaScript Ajax, чтобы добавить в первую строку небольшого скрипта, чтобы сделать некоторые запросы.Небольшая библиотека JavaScript Ajax
Я уже пробовал:
Но они не работают вообще. Альтернативы?
Здесь вы идете, довольно просто:
function createXHR()
{
var xhr;
if (window.ActiveXObject)
{
try
{
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
catch(e)
{
alert(e.message);
xhr = null;
}
}
else
{
xhr = new XMLHttpRequest();
}
return xhr;
}
Документация here
Пример:
var xhr = createXHR();
xhr.onreadystatechange = function()
{
if (xhr.readyState === 4)
{
alert(xhr.responseText);
}
}
xhr.open('GET', 'test.txt', true)
xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
xhr.send()
Update:
Для того, чтобы сделать междоменное сценариев , вам придется либо позвонить к локальному серверу на стороне прокси-сервера (который читает и эхо это удаленные данные), или, если удаленный сервис возвращает JSON, используйте этот метод:
Поскольку JSON является по существу объект JavaScript или массив, это действительный источник. Вы теоретически должны иметь возможность напрямую обращаться к удаленной службе. Я не проверял, но это, кажется, общепринятая практика:
О, но теперь я забыл, что это должно быть кросс-домен: O – TomShreds
О, это грубо. [исследования] –
@ Тома, я бы сказал, что стоит вопрос сам по себе. –
Ну ... jQuery, вероятно, больше, чем вы хотите, но это, возможно, еще очень хороший вариант. Это хорошо документированы, хорошо поддерживается, и если вы используете ссылку CDN
http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js
это даже очень вероятно, будет присутствовать и кэшируется на клиентской машине уже.
Google CDN: http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery .min.js – Radu
@ Раду приветствует, этот URL-адрес я имел в виду. –
Спасибо, но мне нужен только небольшой фрагмент. Я использую jQuery для всей моей работы, связанной с javascript, но для этого времени мне было нужно что-то очень маленькое. – TomShreds
Итак ... крошечный ...
var obj = (window.ActiveXObject) ? new ActiveXObject("Microsoft.XMLHTTP") : (XMLHttpRequest && new XMLHttpRequest()) || null;
Много ajax. Такой вау. – samvv
Вот моя версия с асинхронным обратным вызовом в Node.js стиль
https://gist.github.com/4706967
// tinyxhr by Shimon Doodkin - licanse: public doamin - https://gist.github.com/4706967
//
// tinyxhr("site.com/ajaxaction",function (err,data,xhr){ if (err) console.log("goterr ",err,'status='+xhr.status); console.log(data) });
// tinyxhr("site.com/ajaxaction",function (err,data,xhr){ if (err) console.log("goterr ",err,'status='+xhr.status); console.log(data) },'POST','value1=1&value2=2');
// tinyxhr("site.com/ajaxaction.json",function (err,data,xhr){ if (err) console.log("goterr ",err,'status='+xhr.status); console.log(data); console.log(JSON.parse(data)) },'POST',JSON.stringify({value:1}),'application/javascript');
// cb - function (err,data,XMLHttpRequestObject){ if (err) throw err; }
//
function tinyxhr(url,cb,method,post,contenttype)
{
var requestTimeout,xhr;
try{ xhr = new XMLHttpRequest(); }catch(e){
try{ xhr = new ActiveXObject("Msxml2.XMLHTTP"); }catch (e){
if(console)console.log("tinyxhr: XMLHttpRequest not supported");
return null;
}
}
requestTimeout = setTimeout(function() {xhr.abort(); cb(new Error("tinyxhr: aborted by a timeout"), "",xhr); }, 5000);
xhr.onreadystatechange = function()
{
if (xhr.readyState != 4) return;
clearTimeout(requestTimeout);
cb(xhr.status != 200?new Error("tinyxhr: server respnse status is "+xhr.status):false, xhr.responseText,xhr);
}
xhr.open(method?method.toUpperCase():"GET", url, true);
//xhr.withCredentials = true;
if(!post)
xhr.send();
else
{
xhr.setRequestHeader('Content-type', contenttype?contenttype:'application/x-www-form-urlencoded');
xhr.send(post)
}
}
tinyxhr("/test",function (err,data,xhr){ if (err) console.log("goterr ",err); console.log(data) });
Вы можете вЕРОЯТНОСТЕЙ ly использовать omee. Его единственный файл, содержащий многие часто используемые функции javascript, такие как ajax-запрос.
https://github.com/agaase/omee/blob/master/src/omee.js
поднять Ajax запрос просто позвонить omee.raiseAjaxRequest
с аргументами
списокparams- параметры е.г param1 = param1value & param2 = param2value
URL - URL, чтобы ударить по серверу
функционировали имя функции, которая должна быть отозваны
connType - GET/POST.
Вы можете создать свою собственную версию jQuery, которая включает только модули AJAX.
https://github.com/jquery/jquery#how-to-build-your-own-jquery
https://github.com/jquery/jquery#modules
Это очень хорошее предложение. Кто бы это сделал и почему? Go SE !. – Phil
Спасибо @phil, недовольный любовник, возможно, – msaspence
http://projects.jga.me/jquery-builder/ предполагает, что даже ajax-only jQuery 2.1.1 - 18kb gzipped и minified (полный jQuery - 28kb). Просто хотел упомянуть об этом, поскольку я был удивлен, что он был не меньше. – Keeth
Я не вижу никакой реальной причины, почему эти две библиотеки не будут работать. –
Возможный дубликат [Как сделать вызов ajax без jquery?] (Http://stackoverflow.com/questions/8567114/how-to-make-an-ajax-call-without-jquery) – parvus
Я даже использую microajax в мой крупномасштабный веб-сайт, но может переместиться на jquery http://static.lastdates.com/package/microajax/test.html –