1. parseInt(n,10)
以10進(jìn)制的方式把字符串n轉(zhuǎn)換為整型
2. git 回到以前的狀態(tài)
git log
git reset 7fagfgdfgdfgdsf --hard
3. 隨機(jī)數(shù)
Math.random() > 0.5
4. 圖片加載成功和圖片加載失敗
image是圖片便簽
image.onload = function(){
加載成功就執(zhí)行這里的代碼
}
imgae.onerror = function(){}
5. 怎么刷新當(dāng)前頁面?
window.location.reload()
6. 怎么用圖片發(fā)請求?
利用圖片的src發(fā)送get請求,不過注意要返回一個(gè)真的圖片


7. 通過script的src也可以發(fā)請求
不過要在body里面創(chuàng)建script標(biāo)簽,并且注意server.js里要寫application/javascript。好處是不用發(fā)送一張圖片。這個(gè)方案叫SRJ:server render JavaScript

8. 監(jiān)聽一個(gè)標(biāo)簽,成功加載后就刪掉
label.onload = function(e){
e.currentTarget.remove()
}
9. srj只能用get請求。
10. script的src可以向不同源的網(wǎng)站發(fā)送請求。
11. 為什么JSONP不支持POST方法?
- 因?yàn)镴SONP的原理是通過動(dòng)態(tài)地創(chuàng)建script標(biāo)簽來發(fā)送數(shù)據(jù)
- 我們動(dòng)態(tài)創(chuàng)建script的時(shí)候只能用get,不能用POST
JSONP只支持GET請求,CORS支持所有類型的HTTP請求。JSONP的優(yōu)勢在于支持老式瀏覽器,以及可以向不支持CORS的網(wǎng)站請求數(shù)據(jù)。
12. 什么是jsonp
JSONP是服務(wù)器與客戶端跨源通信的常用方法。
最大特點(diǎn)就是簡單適用,老式瀏覽器全部支持,服務(wù)器改造非常小。
它的基本思想是,網(wǎng)頁通過添加一個(gè)script元素,向服務(wù)器請求json數(shù)據(jù),這種做法不受同源政策限制;服務(wù)器收到請求后,將數(shù)據(jù)放在一個(gè)指定的回調(diào)函數(shù)里傳回來。
JSONP
請求方:frank.com 的前端程序員(瀏覽器)
響應(yīng)方:jack.com 的后端程序員(服務(wù)器)
請求方創(chuàng)建 script,src 指向響應(yīng)方,同時(shí)傳一個(gè)查詢參數(shù) ?callbackName=yyy
響應(yīng)方根據(jù)查詢參數(shù)callbackName,構(gòu)造形如yyy.call(undefined, '你要的數(shù)據(jù)')
yyy('你要的數(shù)據(jù)')這樣的響應(yīng).
瀏覽器接收到響應(yīng),就會(huì)執(zhí)行 yyy.call(undefined, '你要的數(shù)據(jù)')
那么請求方就知道了他要的數(shù)據(jù)
這就是 JSONP
約定:
callbackName -> callback
yyy -> 隨機(jī)數(shù) frank12312312312321325()
jQuery 用法
$.ajax({
url: "http://jack.com:8002/pay",
dataType: "jsonp",
success: function( response ) {
if(response === 'success'){
amount.innerText = amount.innerText - 1
}
}
})
13.實(shí)現(xiàn)yjq.com向mayun.com發(fā)送請求
- 在yjq.com:8001處發(fā)送
http://localhost:8002/pay請求
pay.addEventListener('click', function (e) {
var script = document.createElement('script')
document.body.appendChild(script)
script.src = 'http://localhost:8002/pay'
e.curretTarget.remove()
})
- 在mayun.com的server.js處修改代碼:
if(path === '/pay'){
response.statusCode = 200
var number = fs.readFileSync('./db','utf-8')
var newNumber = number - 1
fs.writeFileSync('./db',newNumber)
response.setHeader('Conttent-Type','application/javascript')
response.write(`
alert('這是來自jmayun.com的代碼')
`)
response.end()
- 最后開啟兩個(gè)server.js,成功接收到來自mayun.com的代碼
[圖片上傳失敗...(image-ad72f6-1553065991823)]
14. 總結(jié)
前端一開始只能使用form表單向服務(wù)器發(fā)送請求,但后來發(fā)現(xiàn)用img標(biāo)簽的src也發(fā)送get請求,但用img發(fā)送請求還需要返回一張圖片,因此又使用動(dòng)態(tài)地創(chuàng)建script元素來發(fā)送請求,衍生出了JSONP。由于script標(biāo)簽的src是可以跨域的,因此jsonp發(fā)送的請求也是可以跨域發(fā)送,且對老式瀏覽器兼容。