1. 程式人生 > >解決跨域問題

解決跨域問題

都是 origin query nginx 只需要 asc tps 可能 服務

常用的跨域方法有這樣一些: 1:使用iFrame訪問另一個域。 然後再從另一個頁面讀取iFrame的內容。jquery等有一些封裝。 據說Firefox等可能不支持讀取另一個iFrame的內容。 2:jsonp。需要服務器支持。使用script src動態得到一段java代碼。是回調頁面上的js函數,參數是一個json對象。 jquery也有封裝。 3:設置http頭,Access-Control-Allow-Origin:* 但據說IE有一些版本不識別這個http頭。 4:服務器代理。如,服務器寫一個url的處理action。其參數是一個url。這個服務器會用參數拼湊一個url,用httpclient庫去執行url,然後把讀取的內容再輸出到http客戶端。 ps: nginx反向代理實現跨域 上面提到的這些跨域方法,都有一些問題。有的不能支持所有瀏覽器,有的需要修改javascript代碼,有的需要重寫服務器端代碼。有的在session等場景下會有問題。 其實,用nginx反向代理實現跨域,是最簡單的跨域方式。只需要修改nginx的配置即可解決跨域問題,支持所有瀏覽器,支持session,不需要修改任何代碼,並且不會影響服務器性能。 我們只需要配置nginx,在一個服務器上配置多個前綴來轉發http/https請求到多個真實的服務器即可。這樣,這個服務器上所有url都是相同的域名、協議和端口。因此,對於瀏覽器來說,這些url都是同源的,沒有跨域限制。而實際上,這些url實際上由物理服務器提供服務。這些服務器內的javascript可以跨域調用所有這些服務器上的url。

解決跨域問題