작은 Ajax JavaScript 라이브러리
저는 요청을 하기 위해 작은 스크립트의 첫 줄에 추가할 매우 작은(라이너 하나) Ajax JavaScript 라이브러리를 찾고 있습니다.
이미 시도했습니다.
하지만 그들은 전혀 작동하지 않습니다.대안?
여기 있습니다. 아주 간단합니다.
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;
}
설명서는 여기에 있습니다.
예:
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()
업데이트:
도메인 간 스크립팅을 수행하려면 로컬 서버 측 프록시(원격 데이터를 읽고 에코함)를 호출하거나 원격 서비스에서 JSON을 반환하는 경우 다음 방법을 사용합니다.
var s = document.createElement('script')
s.src = 'remotewebservice.json';
document.body.appendChild(s);
JSON은 기본적으로 JavaScript 개체 또는 배열이므로 유효한 소스입니다.그러면 이론적으로 원격 서비스에 직접 전화를 걸 수 있습니다.테스트는 하지 않았지만 일반적으로 허용되는 방법인 것 같습니다.
AJAX 모듈만 포함하는 자체 버전의 jQuery를 구축할 수 있습니다.
https://github.com/jquery/jquery#how-to-build-your-own-jquery
https://github.com/jquery/jquery#modules
그래서... 아주 작은...
var obj = (window.ActiveXObject) ? new ActiveXObject("Microsoft.XMLHTTP") : (XMLHttpRequest && new XMLHttpRequest()) || null;
여기 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) });
당신은 아마 오미를 사용할 수 있습니다.이것은 ajax 요청과 같이 자주 사용되는 javascript 함수를 포함하는 단일 파일입니다.
https://github.com/agaase/omee/blob/master/src/omee.js
아약스 요청을 제기하려면 그냥 omee.raise 아약스 요청을 호출하십시오.
논쟁이 있는.
params - param1=param1value¶m2=param2value와 같은 파라미터 목록
url - 서버를 히트시키는 url
func - 다시 호출할 함수 이름
connType - GET/POST.
음... jQuery는 아마도 당신이 원하는 것보다 더 클 것입니다. 하지만 여전히 매우 좋은 옵션입니다.문서화되어 있고 지원이 잘 되어 있으며 CDN 링크를 사용하는 경우
http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js
클라이언트의 컴퓨터에 이미 존재하고 캐시될 가능성도 매우 높습니다.
언급URL : https://stackoverflow.com/questions/3470895/small-ajax-javascript-library
'programing' 카테고리의 다른 글
도커 이미지 "레이어"란 무엇입니까? (0) | 2023.07.29 |
---|---|
VSCODE에서 "sudo"로 프로그램을 디버깅하는 방법 (0) | 2023.07.24 |
행에서 공통 값을 찾으려면 SQL 쿼리에 도움말이 필요합니다. (0) | 2023.07.24 |
스프링이 있는 자가 주입 (0) | 2023.07.24 |
PowerShell의 텍스트 파일에 출력 쓰기 (0) | 2023.07.24 |