同源策略&跨域javascript
JSONP(JSON with Padding)是資料格式JSON的一種「使用模式」,可讓網頁從別的網域獲取資料。 —— 維基百科java
script
標籤不受同源策略影響。DOM
中的 script
腳本能夠當即獲得執行。JavaScript
函數,用來接收服務端返回的數據。function onResponse(data) {
// do something
}
複製代碼
script
標籤執行請求。var script = document.createElement('script')
script.src = 'protocal://domain:port/path?callback=onResponse'
document.head.appendChild(script)
document.head.removeChild(script)
複製代碼
app.get('/path', function(request, response) {
var data = getData()
var callback = request.query.callback
var result = `${callback}(${JSON.stringify(data)});`
response.send(result)
})
複製代碼
script
標籤響應並自動執行回調函數。GET
請求。script
腳本可能被注入惡意代碼。