ecaa999cd4ad362506914a5ba4237a8b
ALiDaYu-短信驗證Login開發(fā)
https://www.alidayu.com/center/code/overview
引入模版
npm install super-alidayu
應(yīng)用程序
'use strict';
const AliDaYu = require('super-alidayu');
var client = new AliDaYu({
app_key: '23333811',
secret: 'ecaa999cd4ad362506914a5ba4237a8b',
});
var options = {
sms_free_sign_name: '登錄驗證',
sms_param: {
code: '110120',
product: 'zhoudada',
},
rec_num: '15568236521',
sms_template_code: 'SMS_6690958',
};
// 發(fā)送短信,promise方式調(diào)用
//var fasong1 = client.sms(options)
// .then(ret => console.log('success', ret))
// .catch(err => console.log('error', err));
//console.log('1') ;
// 發(fā)送短信阱高,callback方式調(diào)用
module.exports.postyz=function(){ client.sms(options, (err, ret) => {
if (err) {
console.log('error', err);
} else {
console.log('success', ret);
}
});
}
### 使用時只需要(其他封裝在作業(yè)里隨機(jī)應(yīng)變)
>```
var alidayu = require(`./modules/alidayu.js`);
alidayu.postyz();
AJAX
通過 AJAX 加載一段文本:
jQuery 代碼:
$(document).ready(function(){
$("#b01").click(function(){
htmlobj=$.ajax({url:"/jquery/test1.txt",async:false});
$("#myDiv").html(htmlobj.responseText);
});
});
HTML 代碼:
<div id="myDiv"><h2>Let AJAX change this text</h2></div>
<button id="b01" type="button">Change Content</button>
```定義和用法
ajax() 方法通過 HTTP 請求加載遠(yuǎn)程數(shù)據(jù)涛贯。
該方法是 jQuery 底層 AJAX 實現(xiàn)筒狠。簡單易用的高層實現(xiàn)見 $.get, $.post 等你踩。$.ajax() 返回其創(chuàng)建的 XMLHttpRequest 對象悦昵。大多數(shù)情況下你無需直接操作該函數(shù)懦趋,除非你需要操作不常用的選項拣技,以獲得更多的靈活性。
最簡單的情況下娱据,$.ajax() 可以不帶任何參數(shù)直接使用蚪黑。
注意:所有的選項都可以通過 $.ajaxSetup() 函數(shù)來全局設(shè)置。
語法
jQuery.ajax([*settings*])
參數(shù)
描述
*settings*
可選中剩。用于配置 Ajax 請求的鍵值對集合忌穿。
可以通過 $.ajaxSetup() 設(shè)置任何選項的默認(rèn)值。
參數(shù)
options
類型:Object
可選结啼。AJAX 請求設(shè)置掠剑。所有選項都是可選的。
async
類型:Boolean
默認(rèn)值: true郊愧。默認(rèn)設(shè)置下朴译,所有請求均為異步請求。如果需要發(fā)送同步請求属铁,請將此選項設(shè)置為 false眠寿。
注意,同步請求將鎖住瀏覽器焦蘑,用戶其它操作必須等待請求完成才可以執(zhí)行盯拱。
beforeSend(XHR)
類型:Function
發(fā)送請求前可修改 XMLHttpRequest 對象的函數(shù),如添加自定義 HTTP 頭喇肋。
XMLHttpRequest 對象是唯一的參數(shù)坟乾。
這是一個 Ajax 事件迹辐。如果返回 false 可以取消本次 ajax 請求蝶防。
cache
類型:Boolean
默認(rèn)值: true,dataType 為 script 和 jsonp 時默認(rèn)為 false明吩。設(shè)置為 false 將不緩存此頁面间学。
jQuery 1.2 新功能。
complete(XHR, TS)
類型:Function
請求完成后回調(diào)函數(shù) (請求成功或失敗之后均調(diào)用)。
參數(shù): XMLHttpRequest 對象和一個描述請求類型的字符串低葫。
這是一個 Ajax 事件详羡。
contentType
類型:String
默認(rèn)值: "application/x-www-form-urlencoded"。發(fā)送信息至服務(wù)器時內(nèi)容編碼類型嘿悬。
默認(rèn)值適合大多數(shù)情況实柠。如果你明確地傳遞了一個 content-type 給 $.ajax() 那么它必定會發(fā)送給服務(wù)器(即使沒有數(shù)據(jù)要發(fā)送)。
context
類型:Object
這個對象用于設(shè)置 Ajax 相關(guān)回調(diào)函數(shù)的上下文善涨。也就是說窒盐,讓回調(diào)函數(shù)內(nèi) this 指向這個對象(如果不設(shè)定這個參數(shù),那么 this 就指向調(diào)用本次 AJAX 請求時傳遞的 options 參數(shù))钢拧。比如指定一個 DOM 元素作為 context 參數(shù)蟹漓,這樣就設(shè)置了 success 回調(diào)函數(shù)的上下文為這個 DOM 元素。
就像這樣:
$.ajax({ url: "test.html", context: document.body, success: function(){ $(this).addClass("done"); }});
data
類型:String
發(fā)送到服務(wù)器的數(shù)據(jù)源内。將自動轉(zhuǎn)換為請求字符串格式葡粒。GET 請求中將附加在 URL 后。查看 processData 選項說明以禁止此自動轉(zhuǎn)換膜钓。必須為 Key/Value 格式嗽交。如果為數(shù)組,jQuery 將自動為不同值對應(yīng)同一個名稱颂斜。如 {foo:["bar1", "bar2"]} 轉(zhuǎn)換為 '&foo=bar1&foo=bar2'轮纫。
dataFilter
類型:Function
給 Ajax 返回的原始數(shù)據(jù)的進(jìn)行預(yù)處理的函數(shù)。提供 data 和 type 兩個參數(shù):data 是 Ajax 返回的原始數(shù)據(jù)焚鲜,type 是調(diào)用 jQuery.ajax 時提供的 dataType 參數(shù)掌唾。函數(shù)返回的值將由 jQuery 進(jìn)一步處理。
dataType
類型:String
預(yù)期服務(wù)器返回的數(shù)據(jù)類型忿磅。如果不指定糯彬,jQuery 將自動根據(jù) HTTP 包 MIME 信息來智能判斷,比如 XML MIME 類型就被識別為 XML葱她。在 1.4 中撩扒,JSON 就會生成一個 JavaScript 對象,而 script 則會執(zhí)行這個腳本吨些。隨后服務(wù)器端返回的數(shù)據(jù)會根據(jù)這個值解析后搓谆,傳遞給回調(diào)函數(shù)『朗可用值:
"xml": 返回 XML 文檔泉手,可用 jQuery 處理。
"html": 返回純文本 HTML 信息偶器;包含的 script 標(biāo)簽會在插入 dom 時執(zhí)行斩萌。
"script": 返回純文本 JavaScript 代碼缝裤。不會自動緩存結(jié)果。除非設(shè)置了 "cache" 參數(shù)颊郎。注意:在遠(yuǎn)程請求時(不在同一個域下)憋飞,所有 POST 請求都將轉(zhuǎn)為 GET 請求。(因為將使用 DOM 的 script標(biāo)簽來加載)
"json": 返回 JSON 數(shù)據(jù) 姆吭。
"jsonp": JSONP 格式榛做。使用 JSONP 形式調(diào)用函數(shù)時,如 "myurl?callback=?" jQuery 將自動替換 ? 為正確的函數(shù)名内狸,以執(zhí)行回調(diào)函數(shù)瘤睹。
"text": 返回純文本字符串
error
類型:Function
默認(rèn)值: 自動判斷 (xml 或 html)。請求失敗時調(diào)用此函數(shù)答倡。
有以下三個參數(shù):XMLHttpRequest 對象轰传、錯誤信息、(可選)捕獲的異常對象瘪撇。
如果發(fā)生了錯誤获茬,錯誤信息(第二個參數(shù))除了得到 null 之外,還可能是 "timeout", "error", "notmodified" 和 "parsererror"倔既。
這是一個 Ajax 事件恕曲。
global
類型:Boolean
是否觸發(fā)全局 AJAX 事件。默認(rèn)值: true渤涌。設(shè)置為 false 將不會觸發(fā)全局 AJAX 事件佩谣,如 ajaxStart 或 ajaxStop 可用于控制不同的 Ajax 事件。
ifModified
類型:Boolean
僅在服務(wù)器數(shù)據(jù)改變時獲取新數(shù)據(jù)实蓬。默認(rèn)值: false茸俭。使用 HTTP 包 Last-Modified 頭信息判斷。在 jQuery 1.4 中安皱,它也會檢查服務(wù)器指定的 'etag' 來確定數(shù)據(jù)沒有被修改過调鬓。
jsonp
類型:String
在一個 jsonp 請求中重寫回調(diào)函數(shù)的名字。這個值用來替代在 "callback=?" 這種 GET 或 POST 請求中 URL 參數(shù)里的 "callback" 部分酌伊,比如 {jsonp:'onJsonPLoad'} 會導(dǎo)致將 "onJsonPLoad=?" 傳給服務(wù)器腾窝。
jsonpCallback
類型:String
為 jsonp 請求指定一個回調(diào)函數(shù)名。這個值將用來取代 jQuery 自動生成的隨機(jī)函數(shù)名居砖。這主要用來讓 jQuery 生成度獨特的函數(shù)名虹脯,這樣管理請求更容易,也能方便地提供回調(diào)函數(shù)和錯誤處理奏候。你也可以在想讓瀏覽器緩存 GET 請求的時候循集,指定這個回調(diào)函數(shù)名。
password
類型:String
用于響應(yīng) HTTP 訪問認(rèn)證請求的密碼
processData
類型:Boolean
默認(rèn)值: true鼻由。默認(rèn)情況下暇榴,通過data選項傳遞進(jìn)來的數(shù)據(jù)厚棵,如果是一個對象(技術(shù)上講只要不是字符串)蕉世,都會處理轉(zhuǎn)化成一個查詢字符串蔼紧,以配合默認(rèn)內(nèi)容類型 "application/x-www-form-urlencoded"。如果要發(fā)送 DOM 樹信息或其它不希望轉(zhuǎn)換的信息狠轻,請設(shè)置為 false奸例。
scriptCharset
類型:String
只有當(dāng)請求時 dataType 為 "jsonp" 或 "script",并且 type 是 "GET" 才會用于強(qiáng)制修改 charset向楼。通常只在本地和遠(yuǎn)程的內(nèi)容編碼不同時使用查吊。
success
類型:Function
請求成功后的回調(diào)函數(shù)。
參數(shù):由服務(wù)器返回湖蜕,并根據(jù) dataType 參數(shù)進(jìn)行處理后的數(shù)據(jù)逻卖;描述狀態(tài)的字符串。
這是一個 Ajax 事件昭抒。
traditional
類型:Boolean
如果你想要用傳統(tǒng)的方式來序列化數(shù)據(jù)评也,那么就設(shè)置為 true。請參考工具分類下面的 jQuery.param 方法灭返。
timeout
類型:Number
設(shè)置請求超時時間(毫秒)盗迟。此設(shè)置將覆蓋全局設(shè)置。
type
類型:String
默認(rèn)值: "GET")熙含。請求方式 ("POST" 或 "GET")罚缕, 默認(rèn)為 "GET"。注意:其它 HTTP 請求方法怎静,如 PUT 和 DELETE 也可以使用邮弹,但僅部分瀏覽器支持。
url
類型:String
默認(rèn)值: 當(dāng)前頁地址蚓聘。發(fā)送請求的地址肠鲫。
username
類型:String
用于響應(yīng) HTTP 訪問認(rèn)證請求的用戶名。
xhr
類型:Function
需要返回一個 XMLHttpRequest 對象或粮。默認(rèn)在 IE 下是 ActiveXObject 而其他情況下是 XMLHttpRequest 导饲。用于重寫或者提供一個增強(qiáng)的 XMLHttpRequest 對象。這個參數(shù)在 jQuery 1.3 以前不可用氯材。
回調(diào)函數(shù)
如果要處理 $.ajax() 得到的數(shù)據(jù)渣锦,則需要使用回調(diào)函數(shù):beforeSend、error氢哮、dataFilter袋毙、success、complete冗尤。
beforeSend
在發(fā)送請求之前調(diào)用听盖,并且傳入一個 XMLHttpRequest 作為參數(shù)胀溺。
error
在請求出錯時調(diào)用。傳入 XMLHttpRequest 對象皆看,描述錯誤類型的字符串以及一個異常對象(如果有的話)
dataFilter
在請求成功之后調(diào)用仓坞。傳入返回的數(shù)據(jù)以及 "dataType" 參數(shù)的值。并且必須返回新的數(shù)據(jù)(可能是處理過的)傳遞給 success 回調(diào)函數(shù)腰吟。
success
當(dāng)請求之后調(diào)用无埃。傳入返回后的數(shù)據(jù),以及包含成功代碼的字符串毛雇。
complete
當(dāng)請求完成之后調(diào)用這個函數(shù)嫉称,無論成功或失敗。傳入 XMLHttpRequest 對象灵疮,以及一個包含成功或錯誤代碼的字符串织阅。
數(shù)據(jù)類型
$.ajax() 函數(shù)依賴服務(wù)器提供的信息來處理返回的數(shù)據(jù)。如果服務(wù)器報告說返回的數(shù)據(jù)是 XML震捣,那么返回的結(jié)果就可以用普通的 XML 方法或者 jQuery 的選擇器來遍歷荔棉。如果見得到其他類型,比如 HTML伍派,則數(shù)據(jù)就以文本形式來對待江耀。
通過 dataType 選項還可以指定其他不同數(shù)據(jù)處理方式。除了單純的 XML诉植,還可以指定 html祥国、json、jsonp晾腔、script 或者 text舌稀。
其中,text 和 xml 類型返回的數(shù)據(jù)不會經(jīng)過處理灼擂。數(shù)據(jù)僅僅簡單的將 XMLHttpRequest 的 responseText 或 responseHTML 屬性傳遞給 success 回調(diào)函數(shù)壁查。
注意:我們必須確保網(wǎng)頁服務(wù)器報告的 MIME 類型與我們選擇的 dataType 所匹配。比如說剔应,XML的話睡腿,服務(wù)器端就必須聲明 text/xml 或者 application/xml 來獲得一致的結(jié)果。
如果指定為 html 類型峻贮,任何內(nèi)嵌的 JavaScript 都會在 HTML 作為一個字符串返回之前執(zhí)行席怪。類似地哆窿,指定 script 類型的話桐汤,也會先執(zhí)行服務(wù)器端生成 JavaScript钻趋,然后再把腳本作為一個文本數(shù)據(jù)返回问词。
如果指定為 json 類型,則會把獲取到的數(shù)據(jù)作為一個 JavaScript 對象來解析籽慢,并且把構(gòu)建好的對象作為結(jié)果返回舶衬。為了實現(xiàn)這個目的重贺,它首先嘗試使用 JSON.parse()。如果瀏覽器不支持声怔,則使用一個函數(shù)來構(gòu)建态贤。
JSON 數(shù)據(jù)是一種能很方便通過 JavaScript 解析的結(jié)構(gòu)化數(shù)據(jù)。如果獲取的數(shù)據(jù)文件存放在遠(yuǎn)程服務(wù)器上(域名不同捧搞,也就是跨域獲取數(shù)據(jù))抵卫,則需要使用 jsonp 類型狮荔。使用這種類型的話胎撇,會創(chuàng)建一個查詢字符串參數(shù) callback=? ,這個參數(shù)會加在請求的 URL 后面殖氏。服務(wù)器端應(yīng)當(dāng)在 JSON 數(shù)據(jù)前加上回調(diào)函數(shù)名晚树,以便完成一個有效的 JSONP 請求。如果要指定回調(diào)函數(shù)的參數(shù)名來取代默認(rèn)的 callback雅采,可以通過設(shè)置 $.ajax() 的 jsonp 參數(shù)爵憎。
注意:JSONP 是 JSON 格式的擴(kuò)展。它要求一些服務(wù)器端的代碼來檢測并處理查詢字符串參數(shù)婚瓜。
如果指定了 script 或者 jsonp 類型宝鼓,那么當(dāng)從服務(wù)器接收到數(shù)據(jù)時,實際上是用了 <script> 標(biāo)簽而不是 XMLHttpRequest 對象巴刻。這種情況下愚铡,$.ajax() 不再返回一個 XMLHttpRequest 對象,并且也不會傳遞事件處理函數(shù)胡陪,比如 beforeSend沥寥。
發(fā)送數(shù)據(jù)到服務(wù)器
默認(rèn)情況下,Ajax 請求使用 GET 方法柠座。如果要使用 POST 方法邑雅,可以設(shè)定 type 參數(shù)值。這個選項也會影響 data 選項中的內(nèi)容如何發(fā)送到服務(wù)器妈经。
data 選項既可以包含一個查詢字符串淮野,比如 key1=value1&key2=value2 ,也可以是一個映射吹泡,比如 {key1: 'value1', key2: 'value2'} 骤星。如果使用了后者的形式,則數(shù)據(jù)再發(fā)送器會被轉(zhuǎn)換成查詢字符串荞胡。這個處理過程也可以通過設(shè)置 processData 選項為 false 來回避妈踊。如果我們希望發(fā)送一個 XML 對象給服務(wù)器時,這種處理可能并不合適泪漂。并且在這種情況下廊营,我們也應(yīng)當(dāng)改變 contentType 選項的值歪泳,用其他合適的 MIME 類型來取代默認(rèn)的 application/x-www-form-urlencoded 。
高級選項
global 選項用于阻止響應(yīng)注冊的回調(diào)函數(shù)露筒,比如 .ajaxSend呐伞,或者 ajaxError,以及類似的方法慎式。這在有些時候很有用伶氢,比如發(fā)送的請求非常頻繁且簡短的時候,就可以在 ajaxSend 里禁用這個瘪吏。
如果服務(wù)器需要 HTTP 認(rèn)證癣防,可以使用用戶名和密碼可以通過 username 和 password 選項來設(shè)置。
Ajax 請求是限時的掌眠,所以錯誤警告被捕獲并處理后蕾盯,可以用來提升用戶體驗。請求超時這個參數(shù)通常就保留其默認(rèn)值蓝丙,要不就通過 jQuery.ajaxSetup 來全局設(shè)定级遭,很少為特定的請求重新設(shè)置 timeout 選項。
默認(rèn)情況下渺尘,請求總會被發(fā)出去挫鸽,但瀏覽器有可能從它的緩存中調(diào)取數(shù)據(jù)。要禁止使用緩存的結(jié)果鸥跟,可以設(shè)置 cache 參數(shù)為 false丢郊。如果希望判斷數(shù)據(jù)自從上次請求后沒有更改過就報告出錯的話,可以設(shè)置 ifModified 為 true锌雀。
scriptCharset 允許給 <script> 標(biāo)簽的請求設(shè)定一個特定的字符集蚂夕,用于 script 或者 jsonp 類似的數(shù)據(jù)。當(dāng)腳本和頁面字符集不同時腋逆,這特別好用婿牍。
Ajax 的第一個字母是 asynchronous 的開頭字母,這意味著所有的操作都是并行的惩歉,完成的順序沒有前后關(guān)系等脂。$.ajax() 的 async 參數(shù)總是設(shè)置成true,這標(biāo)志著在請求開始后撑蚌,其他代碼依然能夠執(zhí)行上遥。強(qiáng)烈不建議把這個選項設(shè)置成 false,這意味著所有的請求都不再是異步的了争涌,這也會導(dǎo)致瀏覽器被鎖死粉楚。
$.ajax 函數(shù)返回它創(chuàng)建的 XMLHttpRequest 對象。通常 jQuery 只在內(nèi)部處理并創(chuàng)建這個對象,但用戶也可以通過 xhr 選項來傳遞一個自己創(chuàng)建的 xhr 對象模软。返回的對象通常已經(jīng)被丟棄了伟骨,但依然提供一個底層接口來觀察和操控請求。比如說燃异,調(diào)用對象上的 .abort() 可以在請求完成前掛起請求携狭。