新聞中心
所有支持Javascript的瀏覽器都會(huì)使用同源策略這個(gè)安全策略,所以當(dāng)前后端出現(xiàn)域名、協(xié)議、端口不同時(shí),都需要解決跨域問(wèn)題。以下提供三種ajax跨域解決方式:
1.jsonp
ajax請(qǐng)求時(shí)dataType:jsonp
會(huì)自動(dòng)增加一個(gè)請(qǐng)求參數(shù)callback,響應(yīng)時(shí)原本的json包含在callback中
缺點(diǎn):響應(yīng)時(shí)需要額外增加一層包裝
2.response header
在springmvc中增加攔截器interceptor,preHeadle方法中增加response.setHeader("Access-Control-Allow-Origin", “*");允許所有域名跨域請(qǐng)求
缺點(diǎn):對(duì)IE9之前的瀏覽器有不兼容現(xiàn)象
3.nginx
nginx設(shè)置反向代理將后臺(tái)請(qǐng)求和前臺(tái)進(jìn)行統(tǒng)一
缺點(diǎn):本機(jī)開(kāi)發(fā)時(shí)需要配置nginx
原始請(qǐng)求:http://localhost:8080/index.html
被域名阻擋請(qǐng)求:http://localhost:8081/indextwo.html
將被攔截請(qǐng)求改寫(xiě)成:http://localhost:8080/api/indextwo.html
server {
listen 8080; #監(jiān)聽(tīng)端口
server_name localhost; #
location / {
root html;#文件根目錄
index index.html index.htm;#默認(rèn)起始頁(yè)
}
#解決方法
location /api{
rewrite ^.+api/?(.*)$ /$1 break;
include uwsgi_params;
proxy_pass http://localhost:8081;
}
}
ps:
當(dāng)ajax要求dataType:json時(shí),要求后臺(tái)返回必須為標(biāo)準(zhǔn)的json格式,如果是字符串會(huì)進(jìn)入error
創(chuàng)新互聯(lián)www.cdcxhl.cn,專(zhuān)業(yè)提供香港、美國(guó)云服務(wù)器,動(dòng)態(tài)BGP最優(yōu)骨干路由自動(dòng)選擇,持續(xù)穩(wěn)定高效的網(wǎng)絡(luò)助力業(yè)務(wù)部署。公司持有工信部辦法的idc、isp許可證, 機(jī)房獨(dú)有T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確進(jìn)行流量調(diào)度,確保服務(wù)器高可用性。佳節(jié)活動(dòng)現(xiàn)已開(kāi)啟,新人活動(dòng)云服務(wù)器買(mǎi)多久送多久。
分享題目:ajax跨域-創(chuàng)新互聯(lián)
當(dāng)前地址:http://www.ef60e0e.cn/article/dgdech.html