ionic1跨域问题
在使用ionic是遇到跨域问题
我自己尝试简单的单间一个能返回数据的后台服务器,ionic的www目录我使用一个ionic的livereload 来当做一个简易的web服务器,在使用ionic serve 或者ionic build的时候会发生跨域的问题,参考@donghongfei的分享解决了这个问题,记录一下,再次遇到就不怕。
解决过程:我使用的是他介绍代理服务器方法
- 将你的ionic.project 改造成这样(现在ionic.project改名为ionic.config.json),path相当于proxyUrl的一个简称,也就是在页面中使用path的时候回去调用proxyUrl
{
"name": "proxy-example",
"app_id": "",
"proxies": [
{
"path": "/api",//
"proxyUrl": "http://cors.api.com/api"
}
]
}
- 然后把你的API节点设置成angular constant,吧API节点指定为我们的代理url,这样就可以在需要的页面引入ApiEndpoint依赖,来使用这个模块
angular.module('starter', ['ionic', 'starter.controllers', 'starter.services'])
.constant('ApiEndpoint', {
url: 'http://localhost:8100/api'
})
3.设置angular的service
angular.module('starter.services', [])
//NOTE: We are including the constant `ApiEndpoint` to be used here.
.factory('Api', function($http, ApiEndpoint) {
console.log('ApiEndpoint', ApiEndpoint)
var getApiData = function() {
return $http.get(ApiEndpoint.url + '/tasks')
.then(function(data) {
console.log('Got some data: ', data);
return data;
});
};
return {
getApiData: getApiData
};
})
4.通过gulp自动转化地址,修改gulpfile添加两个任务,同时需要先下载replace插件
npm install replace --save
var replace = require('replace');
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,
});
})
5.上面的第二步是他的方法,放在我的项目中不方便,我就单独写了一个proxy文件,然后在需要的模块中引入,调用即可,但是url我这里需要使用服务器地址,而不是livereload地址,这个需要注意
最后补充:)我的www目录结构已经发布到github,地址
ionic1跨域问题的更多相关文章
- Ionic的跨域问题
跨域大家都不陌生,但最近一直遇到一个坑,也是自身对ajax和angular的不深入造成,所以记录一笔,下次遇到绕过. 参考过:http://ionichina.com/topic/54f051698c ...
- Ajax及跨域
概念 Ajax Ajax,Asynchronous JavaScript and XML,字面意思:异步的 JavaScript 和 XML,是指一种创建交互式网页应用的网页开发技术. 用于异步地去获 ...
- Taurus.MVC 2.2 开源发布:WebAPI 功能增强(请求跨域及Json转换)
背景: 1:有用户反馈了关于跨域请求的问题. 2:有用户反馈了参数获取的问题. 3:JsonHelper的增强. 在综合上面的条件下,有了2.2版本的更新,也因此写了此文. 开源地址: https:/ ...
- ASP.NET Web API 跨域访问(CORS)
一.客户端用JSONP请求数据 如果你想用JSONP来获得跨域的数据,WebAPI本身是不支持javascript的callback的,它返回的JSON是这样的: {"YourSignatu ...
- 解决cookie跨域访问
一.前言 随着项目模块越来越多,很多模块现在都是独立部署.模块之间的交流有时可能会通过cookie来完成.比如说门户和应用,分别部署在不同的机器或者web容器中,假如用户登陆之后会在浏览器客户端写入c ...
- 关于python的bottle框架跨域请求报错问题的处理
在用python的bottle框架开发时,前端使用ajax跨域访问时,js代码老是进入不了success,而是进入了error,而返回的状态却是200.url直接在浏览器访问也是正常的,浏览器按F12 ...
- JavaScript学习笔记(一)——延迟对象、跨域、模板引擎、弹出层、AJAX示例
一.AJAX示例 AJAX全称为“Asynchronous JavaScript And XML”(异步JavaScript和XML) 是指一种创建交互式网页应用的开发技术.改善用户体验,实现无刷新效 ...
- 跨域问题,前端主动向后台发送cookie
跨域是什么? 从一个域名的网页访问另一个域名的资源,就会出现跨域.只要协议.端口.域名有一个不同就会出现跨域 例如: 1.协议不同 http://www.baidu.com:80 和 https:/ ...
- Vue.js——基于$.ajax实现数据的跨域增删查改
概述 之前我们学习了Vue.js的一些基础知识,以及如何开发一个组件,然而那些示例的数据都是local的.在实际的应用中,几乎90%的数据是来源于服务端的,前端和服务端之间的数据交互一般是通过ajax ...
随机推荐
- Python学习过程(一)
Hi,最近得知了有这么一种计算机语言,名字叫Python,下面对自己从零开始学习的一个记录.被大家所熟知的语言有很多种,比如说C语言 .java .C++ .C#等,以及javascri和火的一塌糊 ...
- CF912E Prime Gift 数学
Opposite to Grisha's nice behavior, Oleg, though he has an entire year at his disposal, didn't manag ...
- [BOI2007]Sequence 序列问题 BZOJ1345
题目描述 对于一个给定的序列a1, …, an,我们对它进行一个操作reduce(i),该操作将数列中的元素ai和ai+1用一个元素max(ai,ai+1)替代,这样得到一个比原来序列短的新序列.这一 ...
- 使用YARN修改中国镜像
官网地址 下载安装 https://yarnpkg.com/zh-Hans/ 查看仓库使用地址 yarn config set registry 设置为淘宝镜像 yarn config set r ...
- 初识 iOS 自动化测试框架 WebDriverAgent
微信跳一跳最近很火,外挂代练什么的也越来越多.作为一只程序猿,对外挂的原理产生了强烈的好奇心,于是埋头研究了一阶段,注意到了 WebDriverAgent 这套 Facebook 出品的自动化测试框架 ...
- hive 存储格式及压缩
-- 设置参数 set hivevar:target_db_name=db_dw; use ${hivevar:target_db_name}; -- 创建textfile表 create table ...
- 《高性能mysql》笔记
组合索引和sql中的顺序有关 单列索引和sql中的顺序无关
- my04_Mysql复制数据一致性校验
1. 搭建一套双节点的Mysql主从复制数据库 2. 主库初始化测试数据 drop table if exists test; ),test_id int NOT NULL AUTO_INCREMEN ...
- python--upload file into HDFS 加载文件到HDFS
模拟:https://creativedata.atlassian.net/wiki/spaces/SAP/pages/61177860/Python+-+Read+Write+files+from+ ...
- appium使用常见问题汇总--持续更新
问题1:使用adb devices查看连接设备,提示unauthorized 解决方案:进入进程管理,关闭adb进程,然后再查看连接设备 问题2:adb connect ip提示远程计算机积极拒绝,无 ...