美文网首页ionic开发Ionic Framework
使用代理解决Ionic下cros跨域问题

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

作者: 格吾刚哥 | 来源:发表于2017-08-29 23:54 被阅读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"
    }
  ]
}
  • path:你在本地Ionic服务器上访问它们的路径
  • proxyUrl:你最终希望通过API调用达到的proxyUrl
    通常,我们会在代码定一个全局的常量,来设定api接口地址,我们可以配合gulp脚本来自动进行添加和替换操作
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,
  });
})

相关文章

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

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

  • ionic4 使用代理进行跨域请求

    最初刚用ionic4做项目时,由于跨域问题,在浏览器开发调试时遇到网络不通问题。然后,找了下用代理去解决跨域问题,...

  • vue的webpack脚手架开发中使用了代理转发proxyTab

    项目中遇到跨域问题,在不设置CORS跨域的情况下,开发使用代理解决跨域问题。流程: 先获取验证码,直接加载url的...

  • 理解ajax跨域

    跨域产生的原因 ionic项目什么情况下会产生ajax跨域问题 针对ionic项目开渔问题我们怎么去避免 跨域产生...

  • 跨域问题,解决方案

    跨域问题,解决方案 - Nginx反向代理跨域问题,解决方案 - CORS方案此为原作者的链接:跨域问题,解决之道

  • Koa代理Http请求

    Koa 代理http请求,解决跨域问题 1、为什么用Koa做跨域代理? "最初为了解决跨域问题,我把站点部署到了n...

  • vue cli3.x开发环境配置跨域

    在正式环境中,由于后台设置cros或者我们使用nginx反向代理,所以不需要考虑跨域问题,而在前端本地开发中会遇到...

  • ajax跨域请求问题的五种解决方案

    ajax跨域请求问题的五种解决方案 方案一: 使用跨域资源共享代理(corsproxy) 方案二: 使用jsonp...

  • 60.webpack中的proxyTable

    proxyTable是解决开发环境中的跨域问题,正式环境的跨域需要使用nginx反向代理或者是后端解决 '/api...

  • 不动产项目汇总:

    1.解决跨域问题: 解决办法:使用node-mitmproxy模块进行代理 使用方式:在package.json ...

网友评论

    本文标题:使用代理解决Ionic下cros跨域问题

    本文链接:https://www.haomeiwen.com/subject/uhoadxtx.html