ホームページ  >  記事  >  ウェブフロントエンド  >  ネイティブJSを使用したAjaxリクエスト関数の記述例の共有

ネイティブJSを使用したAjaxリクエスト関数の記述例の共有

小云云
小云云オリジナル
2017-12-23 15:25:081422ブラウズ

通常、Web ページを作成するとき、Ajax を使用してサーバーをリクエストする場合、JQuery およびその他のカプセル化されたライブラリを使用してサーバーを呼び出します。これは比較的簡単です。しかし、これらのライブラリには一般に多くの関数が含まれており、単一の関数で単純なページを作成する必要がある場合には、そのような巨大なライブラリ ファイルを参照する必要はありません。この記事では、ネイティブ JS で Ajax を記述する際のリクエスト関数の機能を中心に紹介し、皆様のお役に立てれば幸いです。

独自の Ajax リクエスト関数を簡単に実装できます。具体的なコードは次のとおりです。


var ajax = {};
ajax.x = function () {
 if (typeof XMLHttpRequest !== 'undefined') {
 return new XMLHttpRequest();
 }
 var versions = [
 "MSXML2.XmlHttp.6.0",
 "MSXML2.XmlHttp.5.0",
 "MSXML2.XmlHttp.4.0",
 "MSXML2.XmlHttp.3.0",
 "MSXML2.XmlHttp.2.0",
 "Microsoft.XmlHttp"
 ];
 var xhr;
 for (var i = 0; i < versions.length; i++) {
 try {
 xhr = new ActiveXObject(versions[i]);
 break;
 } catch (e) {
 }
 }
 return xhr;
};
ajax.send = function (url, method, data, success,fail,async) {
 if (async === undefined) {
 async = true;
 }
 var x = ajax.x();
 x.open(method, url, async);
 x.onreadystatechange = function () {
 if (x.readyState == 4) {
 var status = x.status;
 if (status >= 200 && status < 300) {
 success && success(x.responseText,x.responseXML)
 } else {
 fail && fail(status);
 }
 }
 };
 if (method == &#39;POST&#39;) {
 x.setRequestHeader(&#39;Content-type&#39;, &#39;application/x-www-form-urlencoded&#39;);
 }
 x.send(data)
};
ajax.get = function (url, data, callback, fail, async) {
 var query = [];
 for (var key in data) {
 query.push(encodeURIComponent(key) + &#39;=&#39; + encodeURIComponent(data[key]));
 }
 ajax.send(url + (query.length ? &#39;?&#39; + query.join(&#39;&&#39;) : &#39;&#39;), &#39;GET&#39;, null, callback, fail, async)
};
ajax.post = function (url, data, callback, fail, async) {
 var query = [];
 for (var key in data) {
 query.push(encodeURIComponent(key) + &#39;=&#39; + encodeURIComponent(data[key]));
 }
 ajax.send(url,&#39;POST&#39;, query.join(&#39;&&#39;), callback, fail, async)
};

Usage: GET


ajax.get(&#39;/test.php&#39;, {foo: &#39;bar&#39;}, function(response,xml) {
 //success
},
function(status){
 //fail
});
POST
ajax.post(&#39;/test.php&#39;, {foo: &#39;bar&#39;}, function(response,xml) {
 //succcess
},function(status){
 //fail
});

ここで注意する必要がある問題があります。


var sendCmd = "?op_code=" + code + "&op_cmd=" + cmd;
ajax.post(&#39;/control&#39; + sendCmd,&#39;&#39;,function(response,xml) {
 console.log(&#39;success&#39;);
},
function(status){
 console.log(&#39;failed:&#39; + status);
});

のようなものを送信します

関連する推奨事項:

jQueryのajaxに基づく関連メソッドの包括的な概要

AJAXページング効果の簡単な実装の詳細な説明

🎜🎜Ajax非同期リクエストの説明テクノロジーと例🎜🎜

以上がネイティブJSを使用したAjaxリクエスト関数の記述例の共有の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。