jsonp 原理 並模擬實現乙個簡單的jsonp

2022-07-02 15:06:13 字數 913 閱讀 2132

1.從原**向目標**(服務端)傳送ajax請的時候,由於瀏覽器的安全策略(這兩個**只要網域名稱,埠,協議 有乙個不同就不允許請求訪問)導致跨域,從而請求無法正常進行。

2.web頁面上呼叫js檔案時則不受是否跨域的影響(不僅如此,我們還發現凡是擁有"src"這個屬性的標籤都擁有跨域的能力,比如

這時候頁面就會彈出 'hello', 因為alert是瀏覽器自帶的函式。

這時候 把 test.js 的內容改成如下:

testfunction('

hello

')

再開啟demo.html頁面,就會報錯如下:

因為在瀏覽器端沒有找到testfunction方法,這就需要在瀏覽器端要事先定義好要執行的這個testfunction方法。

在瀏覽器加上testfunction方法後,**如下:

執行demo.html 結果如下:

1.服務端返回乙個函式,並且函式包裹著瀏覽器端需要的資料。

2.瀏覽器端定義乙個函式,跟服務端返回的函式名一樣,用來處理獲取到的資料。

const express = require('

express');

get('

/users

', (req, res)=>;

if(_callback)

else

});8080, ()=>)

完成,jsonp的過程就是這樣了,jquery這類框架的 jsonp 是其實就把這個過程給封裝好了, 由於需要把引數都放在 的 src裡面向服務端請求, 所以jsonp只持之get請求。

如何模擬實現乙個call apply bind函式

call模擬實現 首先我們實現繫結this功能。比如我們有乙個foo函式 function getname 還有乙個wechat物件 const wechat 我們希望實現 getname.call wechat fedaily以wechat和getname這個為例,這裡的this即getname,...

Linux下模擬實現乙個微型shell

首先我們先看一下shell的執行過程 shell從使用者讀入字串 ls 並建立乙個新的程序,在那個程序中執行ls程式並等待那個程序結束。然後shell讀取新的一行輸入,建立乙個新的程序,在這個程序中執行程式並等待這個程序結束。所以我們要寫乙個微型shell,需要迴圈以下過程 獲取終端輸入。解析輸入 ...

linux程式設計 模擬實現乙個執行緒池

實現乙個執行緒池需要構建三個類 執行緒任務類給定兩個介面,settask 負責把給的資料和方法傳進任務系統,start 負責將給定資料用給定方法來處理。安全佇列類,負責給執行緒池提供乙個能夠互斥訪問的安全佇列。執行緒池類提供三個介面,threadpool 建立指定數量的執行緒,taskpush 將任...