ionic开发Ionic Framework

使用代理解决Ionic下cros跨域问题

2017-08-29  本文已影响119人  格吾刚哥

当我们在使用ionic serve 或者ionic run命令的时候,我们通常会出现类似下面的错误:

XMLHttpRequest cannot load http://api.ionic.com/endpoint.
No 'Access-Control-Allow-Origin' header is present on the requested resource.
Origin 'http://localhost:8100' is therefore not allowed access.

这就是cros跨域问题,对于跨域问题,我们通常的解决方案是修改服务端或者浏览器,但是有些时候会存在不便。为此ionic提供了一个代理的选项,以帮助我们解决这一问题。

ionic.config.json文件,旧版本为ionic.project文件里,增加下面的配置。

{
  "name": "proxy-example",
  "app_id": "",
  "proxies": [
    {
      "path": "/api", 
      "proxyUrl": "http://cors.api.com/api"
    }
  ]
}
var replace = require('replace');
//注意下面的文件地址,它是包含你endpoint或baseurl的文件
var replaceFiles = ['./www/js/app.js'];
gulp.task('add-proxy', function() {
  return replace({
    regex: "http://cors.api.com/api",
    replacement: "http://localhost:8100/api",
    paths: replaceFiles,
    recursive: false,
    silent: false,
  });
})
gulp.task('remove-proxy', function() {
  return replace({
    regex: "http://localhost:8100/api",
    replacement: "http://cors.api.com/api",
    paths: replaceFiles,
    recursive: false,
    silent: false,
  });
})
上一篇下一篇

猜你喜欢

热点阅读