zoukankan      html  css  js  c++  java
  • Ionic学习记录

    1、跨域问题

    浏览器中的运行

    当你运行 ionic serve 时发生了什么呢?

    • 启动了一个本地 web 服务器
    • 你的浏览器打开并定位到本地服务器地址

    这让你看着你的应用加载到你电脑上一个浏览器里,地址是:http://localhost:8100(如果你选择了 localhost的话)。

    你的 origin 就是 localhost:8100

    任何的发送到其他不是 localhost:8100 主机上的 AJAX 请求都会把localhost:8100作为他的 origin,这就会导致必须要经过一个 CORS 预检来看是否可以访问(非本机的)服务器资源。

    设备上的运行

    当你运行 ionic run 时发生了什么呢?

    • app 所有的文件被拷贝到设备(或者模拟器)上。
    • app 运行起来,触发手机/模拟器上的浏览器访问已经被拷贝上去的文件,比如: file://some/path/www/index.html

    因为你正在运行的 URI 是 file://,所以你的 origin 将不会存在,所以任何向外的请求都不再需要 CORS 请求。

    在设备使用 livereload 运行

    当你运行 ionic run -l时又发生了什么呢?

    • 启动了一个本地服务器
    • app 运行起来,触发手机/模拟器上的一个浏览器通过http://192.168.1.1:8100来运行文件(你的 本地 ip 可能是其他的)。

    你的 origin 就会是 192.168.1.1:8100

    任何一个发送到不是192.168.1.1:8100的服务器上的 AJAX 请求都会需要进行 CORS 预检请求来看是否可以访问到该服务器上的资源。

    参考文档:http://blog.ionic.io/handling-cors-issues-in-ionic/

    2、Ionic跨域解决,浏览器端

      设置代理:在ionic.config.json中加入。注意,实际访问的地址只能填写域名,后面的目录不能填写,否则会出现404错误

    "proxies": [
        {
          "path": "/api",
          "proxyUrl": "http://news-at.zhihu.com"
        }
      ]

      请求的时候,再加上具体的目录。实际上,是把/api 映射为了 http://news-at.zhihu.com,最终地址是http://news-at.zhihu.com + /api/4/news/latest

    this.http.get('/api'+'/api/4/news/latest').subscribe((data) => {
          console.log(data);
        });

     3、插件网站收集

      http://ngcordova.com/

      https://cordova.apache.org/

  • 相关阅读:
    树上倍增求LCA(最近公共祖先)
    NOI题库分治算法刷题记录
    NOI题库刷题日志 (贪心篇题解)
    O(nlogn)LIS及LCS算法
    BLOG搬家
    『素数 Prime判定和线性欧拉筛法 The sieve of Euler』
    『扩展欧几里得算法 Extended Euclid』
    『NOIP2018普及组题解』
    P25、面试题1:赋值运算符函数
    字符串转成整数
  • 原文地址:https://www.cnblogs.com/zhaoyihao/p/7580745.html
Copyright © 2011-2022 走看看