1. 程式人生 > 實用技巧 >vue 人臉識別 demo

vue 人臉識別 demo

1、 跨域問題:

  跨域發生的原因(什麼是跨域)?

  首先 跨域發生在前後端分離的專案中 ,前端靜態資源伺服器(伺服器A) ,後端伺服器(伺服器B)

  在瀏覽器中 我們 在位址列 輸入伺服器A 的域名 ,伺服器A會返回 html ,css,js。程式碼 我們通過js訪問 伺服器B的資源 就會發生----跨域

  簡述:伺服器A的js通過 ajax訪問伺服器B下的資源

  跨域的結果是什麼?

  通過 js傳送get請求 伺服器B會接收請求 但不會返回結果

  通過js傳送post,put,patch,delete請求 伺服器B js內部會先發送一個options請求的試探 如果返回200OK 則會繼續請求,否則則停止請求

  options請求簡述: 跨域的一次預檢,判斷後端是否允許返回資源(伺服器是預設拒絕的)

2、解決(django)

  options請求 需要伺服器B的介面返回200OK 我們不太可能每一個介面都寫一個 (冗餘),so 封裝

  在django中 我們使用Cors來解決

  包名:django-cors-headers github:https://github.com/adamchainz/django-cors-headers

  安裝 : pip install django-cors-headers

  在settings 中 INSTALL_APPS=[ 'corsheaders']        ]

  在中介軟體中 設定 :corsheaders.middleware.CorsMiddleware 寫在第一項

  新增白名單: (只有白名單中的地址 才可以訪問伺服器B的資源)

  CORS_ORIGIN_WHITELIST = (
      '127.0.0.1:8080',
      'localhost:8080',
  )  
  CORS_ALLOW_CREDENTIALS = True  # 允許攜帶cookie