前几天比较厉害的一位前端的同事说了一下跨域的问题,提供了一些比较好的解决办法。最后推荐的方法就是CORS(跨来源资源共享)。不过这方法好像 百度出来的东西挺少的,所以自己测试了一下。还是比较好用,不过这方法有些比较老的浏览器不支持,IE8据说是支持的,不过有点麻烦。具体支持情况可以查看 维基百科 http://zh.wikipedia.org/wiki/CORS
主要是在服务器端申明一下支持 CORS就行了。。。
header(“Access-Control-Allow-Origin:https://phpquan.com”);
这是比较安全的,意思是只接受 phpquan.com 跨域来的请求。这样就可以很简单的使用jQuery里面的ajax方法请求。
百度了很多,一般解决方法是最省事的一句 header(“Access-Control-Allow-Origin:*”);
不过看了很多,如果是为了安全这个CORS语法还挺多的,先写下来 有机会可以慢慢研究
header(‘Access-Control-Allow-Origin: http://www.example.com/’);
header(‘Access-Control-Allow-Methods: GET, POST, PUT, DELETE’);
header(‘Access-Control-Max-Age: 3628800’);
具体代码:
post.php
header("Access-Control-Allow-Origin:https://phpquan.com"); var_dump($_POST);
ajax.html 这里只需要在浏览器的控制台里面敲入以下代码就行,不过前提是先要引入 jQuery。根据以上代码,这里要在上面申明的域名下做以下操作
$.ajax({ type: "POST", url: "http://example.com/post.php", data: "name=John&location=Boston", dataType: "json", success: function(msg){ alert( "Data Saved: " + msg ); } });