apache跨域

http://www.cnblogs.com/2050/p/3191744.html
http://blog.csdn.net/qq_15283821/article/details/54405805

加载header模块:

LoadModule headers_module modules/mod_headers.so

修改vhost.conf

<VirtualHost *:8888>
    DocumentRoot "D:GitHubTPVueTODOpublic"
    ServerName www.todo.com
    ServerAlias todo.com
  <Directory "D:GitHubTPVueTODOpublic">
      Options FollowSymLinks ExecCGI
      AllowOverride All
      Order allow,deny
      Allow from all
      Require all granted

      Header set Access-Control-Allow-Origin *
      Header set Access-Control-Allow-Methods "GET, POST, OPTIONS, PUT, DELETE"
      Header set Access-Control-Allow-Headers "Content-Type"
  </Directory>
</VirtualHost>

重启apache服务

net stop apache2a
net start apache2a

跨域详解

http://www.freebuf.com/articles/web/65468.html
浏览器同源策略保护的是别人,不是你。你跨域请求别人的网站的信息对别人构成安全问题,因而不允许ajax跨域访问。 更重要的是不允许跨域访问浏览器端的cookie信息,比如你正在浏览邮件,然后邮件中有个恶意链接,你点开了,如果没有同源策略限制,这个打开的恶意网站是可以执行js代码访问你的邮件内容的。但是这个策略也给我们跨域数据请求带来了麻烦,CORS(跨源资源共享)解决了这个问题,通过在被请求站点的服务端设置response header,浏览器识别之后便允许跨域访问。

Access-Control-Allow-Origin: *.Httpsecure.org
Access-Control-Allow-Methods: OPTIONS, GET, POST, HEAD, PUT
Access-Control-Allow-Headers: X-custom
Access-Control-Allow-Credentials: true

在上面的响应头中:

  1. 第一行定义了双向通信通道,
  2. 第二行定义了请求可以使用OPTIONS, GET, POST, PUT, HEAD中的任何方式,
  3. 第三行则是定义的响应头,
  4. 最后一行允许经过身份验证的资源进行通信。

CORS中授权信息

上面我们看到CORS开启之后便可以被跨域访问,但是这个还不够安全,必须有相应的授权访问机制才实现身份识别,将请求对象限定在可信范围内。
CORS实现跨域时授权问题(401错误)的解决
TODO: 验证的后面加上...

原文地址:https://www.cnblogs.com/wancy86/p/7290623.html