解决跨域问题的3种方法

2018/03/16 13:55
阅读数 132

使用jq的话,设置ajax这两个属性即可。

第一个为使用crossDomain,第二个属性使其可以传输cookie

$.ajaxSetup({
    crossDomain: true,
    xhrFields: {
        withCredentials: true
    }
});


插件地址:https://github.com/MoonScript/jQuery-ajaxTransport-XDomainRequest但这种方式IE9并不支持,这时候强大的jq插件库的作用就显示出来了

同时后台还需要进行设置,spring中直接在Controller上加上@CrossOrigin注解即可。

如果失效,请为Controller设置具体的method

@CrossOrigin
@RequestMapping(value = "/Controller", produces = "text/html;charset=UTF-8", method = RequestMethod.POST)

如果不用spring需自行设置下面三个头信息

Access-Control-Allow-Origin
Access-Control-Allow-Credentials
Access-Control-Expose-Headers

angularJS $http设置全局的跨域支持:

angular.module('myApp')
.config(['$httpProvider', function($httpProvider) {
  $httpProvider.defaults.withCredentials = true;
}])

      api.checkNoteBookFile = function(url) {
        return $http({
          method: 'GET',
          url: url,
          crossDomain: true,
          withCredentials: false,
          headers: {'Content-Type': 'application/x-www-form-urlencoded'}
        });
      }

 

展开阅读全文
加载中

作者的其它热门文章

打赏
0
0 收藏
分享
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部