? ? ?今天用sanic寫前后端分離的項(xiàng)目時(shí)唆涝,用pycharm本地調(diào)試遇到ajax跨域問題。從網(wǎng)上搜索解決方案石抡,用getJSON,jsonp,設(shè)置請(qǐng)求頭等均達(dá)不到理想效果。最后啰扛,想到可以利用nginx反向代理來解決這個(gè)問題嚎京。
兩個(gè)url只要協(xié)議隐解、域名鞍帝、端口有任何一個(gè)不同,都被當(dāng)作是不同
的域煞茫,相互訪問就會(huì)有跨域問題帕涌。
1.在pycharm中編寫項(xiàng)目時(shí),前端的url為
http://localhost:63342/Library/template/index.html
2.而我的后端請(qǐng)求地址為
http://localhost:8000/api/
3.解決這個(gè)問題续徽,只要使頁面的前綴和接口的前綴一致就可以了蚓曼,因此可以使用nginx進(jìn)行反向代理。打開nginx目錄下的conf文件夾钦扭,在nginx.conf文件的配置如下
server {
listen 80;
server_name localhost;
location ^~ /library {
alias E:/Document/python/sanicProject/Library/template;
autoindex on;
#add_header Access-Control-Allow-Origin "*";
#add_header Access-Control-Allow-Methods "POST, GET, PUT, OPTIONS, DELETE";
}
location / {
proxy_pass http://localhost:8000;
#add_header Access-Control-Allow-Origin "*";
add_header Access-Control-Allow-Methods "POST, GET, PUT, OPTIONS, DELETE";
}
}
4.重啟nginx
nginx -s reload
5.現(xiàn)在應(yīng)該訪問正常了