您好,登錄后才能下訂單哦!
所有支持Javascript的瀏覽器都會使用同源策略這個安全策略,所以當前后端出現域名、協議、端口不同時,都需要解決跨域問題。以下提供三種ajax跨域解決方式:
1.jsonp
ajax請求時dataType:jsonp
會自動增加一個請求參數callback,響應時原本的json包含在callback中
缺點:響應時需要額外增加一層包裝
2.response header
在springmvc中增加攔截器interceptor,preHeadle方法中增加response.setHeader("Access-Control-Allow-Origin", “*");允許所有域名跨域請求
缺點:對IE9之前的瀏覽器有不兼容現象
3.nginx
nginx設置反向代理將后臺請求和前臺進行統一
缺點:本機開發時需要配置nginx
原始請求:http://localhost:8080/index.html
被域名阻擋請求:http://localhost:8081/indextwo.html
將被攔截請求改寫成:http://localhost:8080/api/indextwo.html
server {
listen 8080; #監聽端口
server_name localhost; #
location / {
root html;#文件根目錄
index index.html index.htm;#默認起始頁
}
#解決方法
location /api{
rewrite ^.+api/?(.*)$ /$1 break;
include uwsgi_params;
proxy_pass http://localhost:8081;
}
}
ps:
當ajax要求dataType:json時,要求后臺返回必須為標準的json格式,如果是字符串會進入error
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。