项目缘由,先后端跨域了,第一次涉及到跨域的内容,踩了蛮多坑的,总结一下,避免下次再遇到~javascript
由于图片是不会去判断是否跨域的,可是也只能发送get请求,而且获取不到返回值,能够用来监听页面访问数量或者广告点击数量html
var img=new Image(); img.src='http://www.baidu.com'; img.onerror=function(){ alert('error'); } img.onload=function(){ alert('success'); }
jsonp只能用于get请求,设置dataType:'jsonp'java
使用 JSONP 形式调用函数时,如 "myurl?callback=?" jQuery 将自动替换 ? 为正确的函数名,以执行回调函数。
$.ajax({ url: "test.html", dataType:'jsonp', success: function(html){ // } });
其实实现就下面的效果,若是直接这样写,就是页面直接执行,请求成功后执行页面的call函数ajax
<script type="text/javascript" src='http://www.aaa.com?callback=call'></script>
header( "Access-Control-Allow-Origin:*" );
header( "Access-Control-Allow-Methods:POST,GET" );
header('Access-Control-Allow-Headers:value');
$.ajax({ type: "GET", url: '#', header:{//添加头部信息 value:'123456' }, crossDomain: true, success: function (data) {});
须要注意的是,若是要发送Cookie,Access-Control-Allow-Origin就不能设为星号,必须指定明确的、与请求网页一致的域名json
response.setHeader("Access-Control-Allow-Credentials","true");
$.ajax({ type: "GET", url: '#', crossDomain: true, xhrFields: {withCredentials: true},//发送cookie success: function (data) {});
参考:跨域资源共享 CORS 详解后端