[关闭]
@bornkiller 2014-07-15T10:14:39.000000Z 字数 1178 阅读 2854

前端跨域

javascript

前端跨域请求当前属于属于常规操作(AJAX)

  1. <script type="text/javascript" async="" src="http://www.google-analytics.com/ga.js"></script>

script标签可以跨域加载js脚本。。
script标签加载的脚本文件会立刻执行。
本地脚本预先定义一个callback(data)函数,然后向支持jsonp的服务发起一个请求,服务器一般会返回callback(data)的形式,这样就变相获得并操纵数据。
一般形式<scripts src="http://www.*.com?callback=callback"></script>

  1. app.all('*',function(req,res,next){
  2. res.set({
  3. 'Access-Control-Allow-origin' : '*',
  4. 'Access-Control-Allow-Headers' : 'X-Requested-With',
  5. 'Access-Control-Allow-Methods' : 'GET'
  6. }) ;
  7. next();
  8. });

我用的http://127.0.0.1:1337作为静态文件服务器,从http://127.0.0.1:1336 REST API获取数据。

  1. var xhr = new XMLHttpRequest();
  2. xhr.open('GET','http://127.0.0.1:1336/blog',true);
  3. xhr.addEventListener('load',function(e){
  4. console.log(this.response);
  5. })
  6. xhr.send();

Access-Control-Allow-origin属于必填项,*属于通配符,如果没有,就会报错XMLHttpRequest cannot load http://127.0.0.1:1336/blog. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://127.0.0.1:1337' is therefore not allowed access.

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注