一、前端jQuery代码javascript
$.ajax({ crossDomain: true, beforeSend: function(req) { req.setRequestHeader("token", token); req.setRequestHeader("auth", auth); }, url:'http://baidu.com', data:{}, method:'get', dataType:'json', success:function(data) { } });
二、服务器端对于要访问的地址,要设置响应头html
response.addHeader("Access-Control-Allow-Origin", "*");//支持全域名访问,不安全,部署后须要固定限制为客户端网址 response.addHeader("Access-Control-Allow-Headers", "x-requested-with,content-type,token,auth");//响应头 请按照本身需求添加。 response.addHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE, PUT");//支持的http 动做
x-requested-with,content-type 后面要加上,容许传递的头部参数前端
另外,对于跨域请求,浏览器会先针对请求地址,发送一次 OPTIONS 类型的请求,确保服务器是可以接受跨域请求,若是此时服务器在响应头中没有任何设置,浏览器则不会发起正式请求(GET、POST、DELETE、PUT请求),会提示请求失败。java
因此服务器端,根据各自的需求,有时候同一个接口地址要多写一个 OPTIONS 接口,什么都不作,只用来设置响应头。ajax