黑马程序员技术交流社区

标题: 【南京校区】Ajax实现跨域访问最新解决方案 [打印本页]

作者: 大蓝鲸小蟀锅    时间: 2019-9-6 17:57
标题: 【南京校区】Ajax实现跨域访问最新解决方案
在项目开发过程中,我们经常会遇到同一个域名下不同项目之间通过Ajax相互调用数据,这样问题就来了,如何通过Ajax实现跨域呢?在实际项目当中,我们经常会遇到同一个域名下不同项目之间通过Ajax相互调用数据,这样问题就来了,如何通过Ajax实现跨域呢?
解决方案
1.Jsonp
Jsonp解决跨域相对简单,服务器无需任何配置。具体实现如下:
$.ajax({
  type: 'get',
  url: 'http://xxx.com',
  data: {},
  dataType: 'jsonp',
  success: function (data) {
     
  },
  error: function (data) {
    mask.close();
    toast('请求失败');
  }
});
2.CORS
CORS解决方案需要前端和服务端共同配置才能实现
前端
$.ajax({
  url: 'http://xxx.com',
  type: 'post',
  xhrFields:{
    withCredentials:true
  },
  data: {},
  success: function(res){
  },
  error: function(){
    alert('服务器发生错误!');
  }
});
服务端(在程序入口文件配置)
header('Access-Control-Allow-Origin: http://xxx.com');
header('Access-Control-Allow-Credentials: true');
header('Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept');

总结
以上所述是Ajax实现跨域访问最新解决方案,希望对大家有所帮助






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2