您的当前位置:首页正文

关于Ajax如何实现跨域访问的问题介绍

2020-11-27 来源:品趣旅游知识分享网

这篇文章主要介绍了关于关于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');
    显示全文