Nginx解決跨域

2021-09-18 04:24:41 字數 1388 閱讀 1377

跨域

什麼是跨域

就是瀏覽器不能執行其他**的指令碼,他是由瀏覽器的同源策略造成,是瀏覽器施加的安全限制

同源是指 網域名稱 協議 埠 均相同

跨域的解決方法 jsonp

用利用script標籤 在裡面進行ajax請求

在script標籤中 指定請求的型別 datatype = 『jsonp』

這種方式只能支援 get方式進行請求

使用nginx 解決跨域

反向**伺服器

本地頁面發起ajax請求 先**到nginx nginx在**給後台伺服器 後台伺服器返回資料給nginx nginx在返回給頁面的技術 就是反向**

在nginx.conf檔案進行配置

配置如下

server

location /apis

上面的這些配置的相關解釋

讓nginx 京聽localhost的80埠 **a 與**b訪問都是通過80埠 進行訪問

我們另外特殊的配置了乙個'/api'目錄的訪問,並且對url進行了重寫 使/api的請求 都跳轉到 http://localhost: 82 這個位址

rewrite ^/api/(.*)$ /$1 break;

代表重寫攔截進來的請求,並且只能對網域名稱後邊以「/api」開頭的起作用

/ 的請求 **到 http://localhost:81這個位址 進行處理

既然配置了nginx進行跨域的請求 那麼 請求的位址就需寫一些變化

ajax請求的位址 寫成 /api 開頭進行傳送請求

這個的基礎 是監聽node伺服器的執行埠 3000

一旦有發現請求就通過nginx做相應的處理

node和nginx

node主要做一些業務的邏輯 nginx主要做一些ajax的跨域請求 處理一些靜態頁面 當需要請求後台資源時候 通過nginx進行** 請求到資料在**給前台頁面

node主要處理併發的功能上 比如聊天系統 部落格這一類的

也可以在nodejs中介軟體**跨域

#####使用cors跨域資源共享

cors支援所有請求

只需要在後台加上響應頭允許域的請求 在悲情的response header 加入以下配置

//指定允許其他網域名稱訪問

'access-control-allow-origin:*'//或指定域

//響應型別

'access-control-allow-methods:get,post'

//響應頭設定

'access-control-allow-headers:x-requested-with,content-type'

nginx解決跨域

ajax跨域一直困擾我很久,今天終於解決了,並且不需要伺服器端配合。大概思路是 1,在本地電腦配置乙個nginx伺服器 2,把專案放在nginx伺服器下 3,配置nginx 遇到ajax請求,讓 伺服器去請求,然後把結果返回給本地伺服器 location location api 下面截圖裡的api...

nginx解決跨域

一 被呼叫伺服器nginx 1 配置nginx預設 conf 2 配置 conf 告訴瀏覽器允許跨域訪問的方法 add header access control allow methods 告訴瀏覽器快取options預檢請求1小時 add header access control max ag...

nginx解決跨域問題!

1 問題背景 前端呼叫線上後段時出現跨域問題!解決方法nginx的location頭部增加配置 add header access control allow headers add header access control allow methods get,post,options,head,...