中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

javascript如何解決跨域問題

發布時間:2020-06-08 22:27:51 來源:億速云 閱讀:208 作者:Leah 欄目:web開發

這篇文章主要為大家分享javascript解決跨域問題的方法。文中還介紹了跨域的概念以及跨域的訪問示例,希望大家通過這篇文章能有所收獲。

1.什么是跨域?

跨域:指的是瀏覽器不能執行其他網站的腳本。它是由瀏覽器的同源策略造成的,是瀏覽器對javascript施加的安全限制。

例如:a頁面想獲取b頁面資源,如果a、b頁面的協議、域名、端口、子域名不同,所進行的訪問行動都是跨域的,而瀏覽器為了安全問題一般都限制了跨域訪問,也就是不允許跨域請求資源。注意:跨域限制訪問,其實是瀏覽器的限制。理解這一點很重要!!!

同源策略:是指協議,域名,端口都要相同,其中有一個不同都會產生跨域;

javascript如何解決跨域問題

2.跨域訪問示例

假設有兩個網站,A網站部署在:http://localhost:81 即本地ip端口81上;

B網站部署在:http://localhost:82 即本地ip端口82上。現在A網站的頁面想去訪問B網站的信息,A網站頁面的代碼如下(這里使用jquery的異步請求)

$(function (){

$.get("http://localhost:82/api/values", {},function (result) {

$("#show").html(result);

})});

javascript如何解決跨域問題

從錯誤信息可以看出以上出現了跨域問題!

3.如何解決跨域問題?

由之前的介紹我們已經知道錯誤的原因,既然跨域會產生問題,那么我們就不跨域不就完了嘛!!!

先上圖:

javascript如何解決跨域問題

首先我們用nginx作為代理服務器和用戶交互,這樣用戶就只需要在80端口上進行交互就可以了,這樣就避免了跨域問題,因為我們都是在80端口上進行交互的;

下面我們看一下利用nginx作為反向代理的具體配置:

server {
        listen      80; #監聽80端口,可以改成其他端口
        server_name  localhost; # 當前服務的域名
        #charset koi8-r;
        #access_log  logs/host.access.log  main;
        location / {
            proxy_pass http://localhost:81;
            proxy_redirect default;
        }
location /apis { #添加訪問目錄為/apis的代理配置
rewrite  ^/apis/(.*)$ /$1 break;
proxy_pass  http://localhost:82;
  }
#以下配置省略

1.當用戶發送localhost:80/時會被nginx轉發到http://localhost:81服務;

2.當界面請求接口數據時,只要以/apis 為開頭,就會被nginx轉發到后端接口服務器上;

總結:nginx實現跨域的原理,實際就是把web項目和后端接口項目放到一個域中,這樣就不存在跨域問題,然后根據請求地址去請求不同服務器(真正干活的服務器);

看完這篇文章,你能夠獨立解決javascript解決跨域問題了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

万年县| 娄底市| 北宁市| 凭祥市| 四川省| 南昌县| 拉萨市| 昭平县| 城市| 会同县| 三河市| 花垣县| 林西县| 郧西县| 凤冈县| 东乌珠穆沁旗| 织金县| 南木林县| 文化| 延津县| 钟山县| 安新县| 文安县| 北川| 天祝| 庆阳市| 西乡县| 柳江县| 望谟县| 剑河县| 泰和县| 池州市| 定州市| 洛宁县| 武安市| 韩城市| 漳浦县| 南投县| 昭觉县| 通化市| 双柏县|