js跨域解決方案(一)

Jcsl12發表於2018-07-23

域名、埠只要有一個不同就會出現跨域的問題。

以下把域名埠不同的伺服器統稱為跨域伺服器。程式碼用java語言解釋。

我也是看別人部落格才知道可以通過呼叫跨域伺服器解決

因為js檔案是可以跨域的,就像我們可以引用其他平臺的jq檔案

同時發現一個知識盲點:原來src引用js檔案不是必須是js擴充名的檔案。比如這樣跨域伺服器地址 xxxxx/testjs,get請求內容寫

response.getWrite.write("function biubiubiu(){alert('biubiubiu is doing ...');}");前端src引用這個地址,就可以使用這個函式。

那麼我想,既然我可以引用這個函式,是不是可以在跨域伺服器裡把我需要跨域訪問的資料當做返回值放到這個函式裡,下面是程式碼測試:

實現功能:跨域返回一個字串給前端,我用兩個編輯器IDEA 和webstorm,IDEA當做跨域伺服器,webstorm也能啟動一個軟體自帶的

java程式碼如下:get請求返回(注意拼接的引號)

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        Writer writer=response.getWriter();
        String str="戰意 化為青龍翱翔吧";
        writer.write("function biubiubiu(){return '"+str+"'}");
    }

前端程式碼:

 

<script>
    $("#box").click(function () {
        var s=document.createElement("script");
        s.src="http://localhost:8080/tt2";
        s.onload=function(){
            console.log(100);
            function fun(){
                console.log(biubiubiu());
            }
            document.getElementById("box2").addEventListener("click",fun);
        };
        document.body.appendChild(s);
    });
</script>

 

這樣前端就能能輸出後臺返回的字串資料了,當然,資料可以使任何型別,也可以是從資料庫中獲取的,剩下需要做的就是怎麼組織程式碼格式了

相關文章