導航:首頁 > 工商服務 > ajax封裝公共的伺服器地址

ajax封裝公共的伺服器地址

發布時間:2021-06-24 02:37:39

① ajax代碼重復,怎麼封裝

/* ajax Post請求
* 伺服器返回數據格式約定為 {success:true/false,message:'消息內容',data:'自定義數據'}
*/
function ajax (url, datas, cb) {
$.ajax({

type: "post",
async: true,
url: url,
data: datas,
success: function (result, textStatus, jqXHR) {
if (typeof result == "string")
result = JSON.parse(result);
if (result && result.result) {
result = result.result;
}else {
cb(result, textStatus, jqXHR);
}
},
error: function () {
/*如果請求失敗,可以統一在這里處理*/

}
});
}
這樣就封裝了一個ajax 以post 請求的方法。調用:
ajax("/submit",{id:1,name:"2",sex:"1",fullname:"lisan"},function(result){ /*這里執行你請求成功後的邏輯*/ })

② ajax open其他伺服器的URL

天互數據 為您解答,希望能幫到你,下面是代碼僅供參看
var XMLHttp;
function createXMLHttpRequest()
{
if(window.XMLHttpRequest)
{
XMLHttp=new XMLHttpRequest();
}
else if(window.ActiveObject)
{
XMLHttp=new ActiveObject("Microsoft.XMLHttp");
}
}

function doAjax()
{
createXMLHttpRequest();
if(XMLHttp!=null)
{
XMLHttp.open("post", "login", true);
XMLHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;");
XMLHttp.onreadystatechange=proc;
XMLHttp.send(null);
}
else
{
alert("不能創建xml對象");
}

}

function proc()
{
if(XMLHttp.readyState==4)
{
if(XMLHttp.status==200)
{
var sob=document.getElementById("login");
var str=XMLHttp.responseText;
if(str!=0)
{
parent.frames["b_frame"].document.getElementById("login").innerHTML = "success!!!";
}
else
{
parent.frames["b_frame"].document.getElementById("login").innerHTML = "error!!!";
}
}
}
}

③ 如何把ajax從伺服器接收的數據封裝成網頁的形式

可以的 你在回調函數那裡面不是有個後台返回的結果嗎 你可以選擇者後台把這個結果封裝成一個html或者是在前台 反正都是一樣的 然後把這個結果彈出來 就等於是在操作一個頁面了

④ 利用AJAX技術在伺服器和客戶端交互數據時,可通過兩種方式來封裝數據,分別是和

交互方式是post和get。json和xml是用來表示數據的格式。比如你伺服器要傳數據給安卓客戶機就可以用json格式的數據。。這樣安卓才能解析你傳給他的數據

⑤ jquery封裝的ajax怎麼使用

s = {type : 'POST',
url : xxx,
data : {},
async : true,
success : function(result) {
alert(1111)
},
Callback:function(){
alert(2222)
}
}

var _ajax = $.ajax;
$.ajax = function (s) {
var old = s.success;
s.success = function (data, textStatus, jqXHR) {
alert(333)
if (data && data.IsLogout) {
eval(data.Callback);
}
if (old) {
old(data, textStatus, jqXHR);
}
};
_ajax(s);
};

$.ajax(s);開始,跳進你自定義的$.ajax = fuc/.....;
var old = s.success;
將 function(result) {
alert(1111)
};
賦值給 old。這是為了保存之前定義的success
s.success = function (data, textStatus, jqXHR) {
alert(333)
if (data && data.IsLogout) {
eval(data.Callback);
}
if (old) {
old(data, textStatus, jqXHR);
}
};
自己封裝一個方法。並修改參數s的success,讓ajax執行完成之後執行這個方法而不是之前的alert(111)

_ajax(s);執行原生的ajax跳到指定的頁面。

成功後跳到 s.success = function (data, textStatus, jqXHR) {
alert(3333)
if (data && data.IsLogout) {
eval(data.Callback);
}
if (old) {
old(data, textStatus, jqXHR);
}
};

最後會依次彈出 3333 2222 1111

⑥ ajax地址在伺服器中要怎樣修改

你寫成絕對路徑名試試,可能沒有找到部署的地址

⑦ ajax的url地址可以是本地的服務端嗎

用火狐的插件 filebug 查看 控制器 有沒有錯誤。

⑧ 怎麼封裝一個公共的ajax請求

s = {type : 'POST',
url : xxx,
data : {},
async : true,
success : function(result) {
alert(1111)
},
Callback:function(){
alert(2222)
}
}

var _ajax = $.ajax;
$.ajax = function (s) {
var old = s.success;
s.success = function (data, textStatus, jqXHR) {
alert(333)
if (data && data.IsLogout) {
eval(data.Callback);
}
if (old) {
old(data, textStatus, jqXHR);
}
};
_ajax(s);
};
$.ajax(s);開始,跳進你自定義的$.ajax = fuc/.....;
var old = s.success;
將 function(result) {
alert(1111)
};
賦值給 old。這是為了保存之前定義的success
s.success = function (data, textStatus, jqXHR) {
alert(333)
if (data && data.IsLogout) {
eval(data.Callback);
}
if (old) {
old(data, textStatus, jqXHR);
}
};
自己封裝一個方法。並修改參數s的success,讓ajax執行完成之後執行這個方法而不是之前的alert(111)

_ajax(s);執行原生的ajax跳到指定的頁面。

成功後跳到 s.success = function (data, textStatus, jqXHR) {
alert(3333)
if (data && data.IsLogout) {
eval(data.Callback);
}
if (old) {
old(data, textStatus, jqXHR);
}
};

⑨ 如何封裝ajax函數

用ajax的局部刷新來給網站提升用戶體驗我們已經用過很多了,ajax已然成為了前端開發最重要的「工具」之一。
但是,我想應該會有不少人在使用ajax的時候都在依賴於jQuery或者prototype或者其他js庫。但現實是,假設某一天一個項目不能引入任何一個js庫,只能用原生js寫代碼,那你怎麼辦?又或者是一個非常簡單的頁面,但是要用到ajax,難道就為了下這么一個ajax請求要引用一個jq這么大的js庫?我想這是不值得的,所以我們應該學會用原生的js來寫ajax,並且把它封裝好以便於以後使用。
由於之前使用過jq的ajax而且覺得他使用起來挺舒服的,所以我在封裝ajax的時候一方面捨去了很多不常用的參數只留下了最常用的幾個功能,另一方面盡量保持它原有的使用風格。
我一共只留了五個參數,他們分別是發送方式(type)、發請求的url(url)、是否為非同步請求(async)、發送的參數(data)、傳輸成功的回調函數(success),函數代碼如下:
/* 封裝ajax函數
* @param {string}opt.type http連接的方式,包括POST和GET兩種方式,默認使用GET
* @param {string}opt.url 發送請求的url
* @param {boolean}opt.async 是否為非同步請求,true為非同步的,false為同步的
* @param {object}opt.data 發送的參數,格式為對象類型
* @param {function}opt.success ajax發送並接收成功調用的回調函數 */

function ajax(opt) {
opt = opt || {};
var type = opt.type || 'GET';
type = type.toUpperCase() || 'GET';
var url = opt.url || '';
var async = opt.async || true;
var data = opt.data || null;
var success = opt.success || function () {};
var xmlHttp = null;
if (XMLHttpRequest) {
xmlHttp = new XMLHttpRequest();
}
else {
xmlHttp = new ActiveXObject('Microsoft.XMLHTTP');
}
var params = [];
for (var key in data){
params.push(key + '=' + data[key]);
}
var dataStr = params.join('&');
if (type === 'POST') {
xmlHttp.open(type, url, async);
xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;charset=utf-8');
xmlHttp.send(dataStr);
}
else {
xmlHttp.open(type, url + '?' + dataStr, async);
xmlHttp.send(null);
}
xmlHttp.onreadystatechange = function () {
if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {
success(xmlHttp.responseText);
}
};
}
以對象的形式做函數的參數還是比較靈活的,不用拘泥於參數個數的問題。但這容易出現一個問題,就是使用參數的時候很有可能參數沒給卻在函數內部使用了,比如在調用函數時忘了寫success回調函數,而定義的時候卻用到了他,這就會報錯了,因為success是undefined了。所以為了避免這種情況我覺得最好在封裝函數的時候盡量給每一個參數一個默認值,如果調用的時候未給出某個參數那麼他就使用默認值代替,這樣就不會出現上述情況了。
接下來下面是創建XMLHttpRequest對象,寫了兩種創建方式是為了兼容IE才有的寫法,舊版本的IE瀏覽器不支持XMLHttpRequest構造函數,IE有他自己獨特的構造函數來支持ajax那就是ActiveXObject構造函數。
創建好了XMLHttpRequest對象,接下來寫的是對發送參數data的轉換,在使用ajax函數的時候data也用json的數據格式會有一種親切感,因為大部分ajax傳輸的時候返回數據都使用json格式,所以發送的時候也使用json格式顯得很友好。這里需要將{a: b, c: d}的格式轉換為a=b&c=d的格式。
然後是對"POST"和"GET"兩種不同的發送方式做處理。GET方法比較簡單,直接把整理好的數據接在open方法的url參數的後面就行了(要記得在url後面加上"?"),send方法也不用帶參數了,因為參數已經在url後面帶著發過去了,所以send方法的參數直接給個null;POST方法這里有個坑,如果不注意可能會很煩惱為什麼會得不到想要的結果,那就是需要設定Content-Type頭信息,模擬HTTP的POST方法發送一個表單,這樣伺服器才會知道如何處理上傳的內容。send方法中參數的提交格式和GET方法中url的寫法一樣,也是a=b&c=d格式。注意open方法必須放在設定頭信息的前面,否則也會報錯。async參數可以是true也可以是false,true代表使用非同步方式調用,false代表使用同步方式調用,理所當然使用ajax是一定用非同步的,這里只是提供一個選擇,而且他的默認值也是true。
最後需要注冊一個onreadystatechange事件,當XMLHttpRequest對象的readyState屬性等於4了(代表收到完整的伺服器響應了),同時status屬性等於200(代表伺服器響應的狀態值為OK,狀態正常)就可以判定這次ajax從發送過程到響應過程全程傳輸成功了,我們可以對返回的數據做一些處理,把要處理的代碼寫在success函數中,ajax成功就會調用之。
// 使用示例
ajax({
method: 'POST',
url: 'test.php',
data: {
name1: 'value1',
name2: 'value2'
},
success: function (response) {
// codes here
}
});
這個ajax函數很簡單代碼量也很少,已經基本滿足我的日常使用需求了,以後使用也不用依賴js庫或者每次寫一遍了。如果以後還有更多其他功能要使用,再往裡面加。

⑩ javascript使用ajax請求數據的url所指向伺服器端文件是怎樣的

回答你的

問題1:但是不知道這個鏈接所指向的文件是用什麼語言寫的?

答:php語言、asp語言、java等伺服器端腳本語言

問題2:js的ajax請求支持什麼樣格式的文件?

答:我想你問的是發送的ajax請求的數據類型吧?也就是你上面例子中的data,

這個是有三種

{

1.text文本類型(即普通字元串)

2.xml

3.json

}

問題3:然後怎麼向我使用apache創建的web網站請求到數據?

答:

ajax_demo01.html文件

<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
<htmllang="en">
<head>
<metahttp-equiv="Content-Type"content="text/html;charset=UTF-8">
<title>ajax無刷新彈窗</title>
<scripttype="text/javascript"src="./public.js"></script>
<scripttype="text/javascript">
/*動態綁定事件*/
window.onload=function(){
$('btn').onclick=function(){
//1.創建Ajax對象
varxhr=createXhr();
//2.初始化
xhr.open('get','ajax_demo01.php');
//3.當狀態碼發生改變時,自動執行的回調函數
xhr.onreadystatechange=function(){
//判斷狀態碼變化值
if(xhr.readyState==4){
//狀態接收完畢時,彈出內容字元串
alert(xhr.responseText);
}
;
}
//4.發送Ajax請求(由於是get請求,所以,請求數據在url,這里傳Null)
xhr.send(null);
}
}
</script>
</head>
<body>
<inputtype="button"id="btn"value="確定">
</body>
</html>

自己封裝的public.js文件

functioncreateXhr(){
try{
returnnewXMLHttpRequest();
}catch(e){

}
try{
returnnewActiveXObject('Microsoft.XMLHTTP');
}catch(e){

}
alert("Ajax對象由於瀏覽器罕用而創建失敗");
}

function$(id){
returndocument.getElementById(id);
}

ajax_demo01.php文件

<?php
echo"helloajax";
閱讀全文

與ajax封裝公共的伺服器地址相關的資料

熱點內容
馬鞍山市委副章銀發 瀏覽:334
機械轉讓範本 瀏覽:247
科技成果推廣制度 瀏覽:13
王德超江蘇工商局 瀏覽:977
治理理論新公共服務理論 瀏覽:894
馬鞍山永豐河 瀏覽:94
投訴醫院護士 瀏覽:163
馬鞍山擼貓 瀏覽:482
馬鞍山春暉悅府房價 瀏覽:63
馬鞍山雞蛋批發 瀏覽:729
鄉鎮衛生院公共衛生服務年終總結 瀏覽:313
交通事故扣車期限已過 瀏覽:428
馬鞍山市博望區按摩店 瀏覽:902
駕駛證扣12分怎麼辦學習考試期限多久啊 瀏覽:46
公共衛生服務項目績效考核細則 瀏覽:408
校長培訓研修成果 瀏覽:598
餐飲發票有效期 瀏覽:28
2018年4月知識產權法自考真題答案 瀏覽:388
我的世界盒子創造 瀏覽:243
衛生院公共衛生服務履職報告 瀏覽:915