所有支持Javascript的浏览器都会使用同源策略这个安全策略,所以当前后端出现域名、协议、端口不同时,都需要解决跨域问题。以下提供三种ajax跨域解决方式:
10年积累的网站制作、网站建设经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站制作后付款的网站建设流程,更有龙州免费网站建设让你可以放心的选择与我们合作。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
创新互联www.cdcxhl.cn,专业提供香港、美国云服务器,动态BGP最优骨干路由自动选择,持续稳定高效的网络助力业务部署。公司持有工信部办法的idc、isp许可证, 机房独有T级流量清洗系统配攻击溯源,准确进行流量调度,确保服务器高可用性。佳节活动现已开启,新人活动云服务器买多久送多久。
本文名称:ajax跨域-创新互联
文章源于:http://lswzjz.com/article/dgdech.html