ngnix解決跨域訪問
說到nginx,不得不說真的很強大,也帶來很多便利用於解決一些頭疼的難題。
一般來說可以用來做:靜態頁面的伺服器、靜態檔案快取伺服器、網站反向代理、負載均衡伺服器等等,而且實現這一切,基本只需要改改那萬能的配置檔案即可。
之前的博文記錄了作為負載均衡。這裡先記錄一下作為靜態頁面的伺服器和反向代理跨域的使用。
一.靜態頁面伺服器
nginx.conf 的配置(其實預設的也是如此,所以作為靜態伺服器只需要將靜態檔案移動到nginx下的html資料夾裡就可以了)
server {
listen 8094; #監聽埠
server_name localhost; #
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;#檔案根目錄
index index.html index.htm;#預設起始頁
}
}
然後開啟瀏覽器 輸入 localhost:8094 即可
就是這麼簡單
二.反向代理伺服器-》跨域
之前我們跨域是藉助了瀏覽器對 Access-Control-Allow-Origin 的支援。但有些瀏覽器是不支援的,所以這並非是最佳方案
現在我們來利用nginx 通過反向代理 滿足瀏覽器的同源策略實現跨域
首先,我先註釋掉之前的跨域設定
然後訪問一下index1.html
提示了跨域問題
然後我們回到nginx.conf 配置一個反向代理路徑(新增紅色部分)
server {
listen 8094;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
index index.html index.htm;
}
location /apis {
rewrite ^.+apis/?(.*)$ /$1 break;
include uwsgi_params;
proxy_pass http://localhost:1894;
}
}
配置說明:配置一個/apis 重寫到我們真正的api地址http://localhost:1894 形成一個代理的過程。
然後更改一下index1.html的api請求地址
這樣這個api的地址就跟當前頁面index1.html處於同源位置了。就是我們配置的nginx監聽地址 localhost:8094
然後我們再次在瀏覽器中訪問 index1.html 可能請求到的知識快取頁面 請清除快取或重啟nginx
相關推薦
ngnix解決跨域訪問
說到nginx,不得不說真的很強大,也帶來很多便利用於解決一些頭疼的難題。 一般來說可以用來做:靜態頁面的伺服器、靜態檔案快取伺服器、網站反向代理、負載均衡伺服器等等,而且實現這一切,基本只需要改改那萬能的配置檔案即可。 之前的博文記錄了作為負載均衡。這裡先記錄一下作為靜態頁面的伺服器和反向代理跨域
伺服器端解決跨域訪問
跨域是頁面js請求ajax,js所在html的url與請求api,不在同一個域名下,跨域解決的思路。 1、伺服器端響應頭允許請求的url,即響應輸出允許訪問的域名; 2、請求由伺服器轉發,使用閘道器或者nginx對請求進行重定向。 具體方案: 1、php 在responce的header中輸
學習通過後端配置cors遊覽器解決跨域訪問
學習通過後端配置cors遊覽器解決跨域訪問 現在的遊覽器ie10以上的都可以瀏覽器直接發出CORS請求。體來說,就是在頭資訊之中,增加一個Origin欄位。然後node後端 router.get('/getData', function(req, res, next) { //設
java設定響應頭,解決跨域訪問限制
public class testFilter implements Filter { public void doFilter(ServletRequest request, ServletResponse resp, FilterChain chain)
Django解決跨域訪問報錯/Cros問題
兩種方法: 拼資料 def myview(_request): response = HttpResponse(json.dumps({"key": "value", "key2": "va
ionic解決跨域訪問
如果你通過 ionic serve 或者 ionic run 命令使用或 live reload 或者訪問過外部 API 結點,那麼你肯定遇到過 CORS 問題,譬如下面這樣: XMLHttpRequest cannot load http://api.i
解決jquery ajax在跨域訪問post請求的時候,ie9以下無效(包括ie9)的問題
jquery src actor div tick 屬性 dex 啟用 logs 最近在做項目的時候遇到一個問題,就是跨域請求ajax的時候ie9以下的瀏覽器不可以訪問,直接執行error裏面的代碼,但是也不報錯,就上網查了查,發現了一個很好用的方法,在這裏記錄一下,也希望
[轉]No 'Access-Control-Allow-Origin' header is present on the requested resource.'Ajax跨域訪問解決方案
不能 ade 方式 ole 相同域名 all log head 允許 原 https://blog.csdn.net/zhoucheng05_13/article/details/53580683 No ‘Access-Control-Allow-Origin‘ heade
分享跨域訪問的解決方案與基礎分析
什麼是跨域訪問? 由於瀏覽器同源策略,凡是傳送請求url的協議、域名、埠三者之間任意一個與當前頁面地址不同即為跨域。存在跨域的情況: 網路協議不同,如http協議訪問https協議。 埠不同,如80埠訪問8080埠。 域名不同,如qianduanblog.com訪問baidu.com。
ajax跨域訪問問題解決
本文為轉載的一篇ajax跨域訪問問題解決方案 知跨域而不知如何解決 知道問題的確切原因,剩下的就是找到解決問題的方法了。google了好久,再次在同事的指點下知道jQuery的ajax有jsonp這樣的屬性可以用來解決跨域的問題。 找到一種解決方式 現在也知
iframe 跨域訪問session/cookie丟失問題解決方法
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
CORS解決ajax跨域訪問問題---
/** * 登入驗證 * * @author ruoyi */ @CrossOrigin(origins = "http://127.0.0.1:8020", maxAge = 36000) @Controller public
Shiro框架在CORS跨域訪問中遇到的問題及解決
背景 最近做一個前後端分離的專案時,使用shiro做許可權管理時遇到跨域問題,這裡做一下記錄。 原因 後端通過Shiro配置URL過濾, shiroFilterFactoryBean.setLoginUrl("/unauth"); 預設對於沒有授權的訪問
【docker】elasticsearch-head無法連線elasticsearch的原因和解決,叢集健康值:未連線,ElasticSearch——跨域訪問的問題
環境 ==================== 虛擬機器啟動 centos 7 ip:192.168.92.130 elasticsearch 5.6.9 port:9200 9201 elasticSearch-head 5 p
Ajax跨域訪問出現Uncaught SyntaxError: Unexpected token : 解決方案
在訪問外網提供的Api時出現跨域問題,嘗試使用普通方式JSONP解決,但是出現Uncaught SyntaxError: Unexpected token : 的錯誤,所有專注於研究ajax請求跨域問題,在前人基礎上逐漸理出脈絡,以此記之,希望對大家有所幫助。蒐羅資源比較雜亂,所有看到“
No 'Access-Control-Allow-Origin' header is present on the requested resource.'Ajax跨域訪問解決方案
出現該錯誤是由於存在網站跨域訪問的問題。 什麼是網站跨域,簡單來講,當你通過ajax來請求或傳送資料時,兩個域名之間不能跨過域名來發送請求或者請求資料,瀏覽器會認為它是不安全的。 解決方式: 1、伺服器端解決方案 設定響應報文頭 response.setHeader
利用nginx解決vue的跨域訪問問題
vue在開發中,可以通過自帶的腳手架配置實現跨域訪問,但是打包時不會將這部分配置檔案載入,這樣會導致上了生產環境出現跨域訪問的問題。在網上查過一些解決跨域的問題,都沒太搞明白,然後就想採用nginx將服務請求轉發來實現,經過一天的摸索,終於搞定了。
解決ajax跨域訪問sessionid不一致問題
根據瀏覽器的保護規則,跨域的時候我們建立的sessionId是不會被瀏覽器儲存下來的,這樣,當我們在進行跨域訪問的時候,我們的sessionId就不會被儲存下來,也就是說,每一次的請求,伺服器就會以為是一個新的人,而不是同一個人,為了解決這樣的辦法,下面這種方法可以解決這種跨域的辦法。
ajax跨域訪問解決
ajax訪問域名遇見的跨域問題,在被訪問的nginx配置檔案上的http節點加上下面幾句話就好了。 add_header Access-Control-Allow-Origin *; add_header Access-Control-Allow-Headers X-
nginx 利用 proxy 反向代理解決 Ajax 跨域訪問,瀏覽器不顯示跳轉後的連結
我們知道,利用nginx rewrite 可以重寫訪問連結,在後面加上last標籤就可以不在瀏覽器顯示跳轉後的連線。那麼如果要跨域跳轉呢? 如果還是使用rewrite,那麼nginx預設會重定向該連結。就算你後面加的last標籤也無濟於事,這樣瀏覽器就會顯示跳轉後的連結。Ajax開發中令人頭疼的問題