先談最簡單的 AJAX server:
- NodeJS
- Module: Express (optional)
- 網路上一大堆 http.createServer(req, res) 範例
- 防火牆設定
接著在 server 上準備一個 jQuery based 網頁去呼叫上述的服務,但因為網頁並沒有真的部署在任何 Web Server 上,所以在瀏覽器開啟的網址列會是以 file:// 開頭,一般受限於 CORS 會不能對 server 發起 Request,或精確地說,在瀏覽器預檢 preflight 失敗後就放棄,若開啟任何開發者工具之類的側錄看來像沒反應。針對各種瀏覽器的解決如下:
- Chrome、Firefox、Safari:在 server js 加這一行
- response.setHeader("Access-Control-Allow-Origin", "*");
- IE:在網頁傳送 ajax 之前加這一行
- Edge:以系統管理員身分開啟命令列提示,輸入
- CheckNetIsolation LoopbackExempt -a -n=Microsoft.MicrosoftEdge_8wekyb3d8bbwe
這絕對是我看過最怪的解法了,不過
有憑有據,也真的有效。
沒有留言:
張貼留言