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/

  • 相关阅读:
    BigPipe_高性能流水线页面技术
    高并发大流量网站 10 个解决方法
    崇高不是比惨
    utf-8无bom格式编码
    go.php
    微信+QQ跳转
    java 设计模式-单例
    HTML连载88-今天把努比亚界面仿真写完了(完结连载)
    Android连载10-动态添加页面、创建一个新闻app
    JavaScript连载9-三目运算符、综合复习
  • 原文地址:https://www.cnblogs.com/zhaoyihao/p/7580745.html
Copyright © 2011-2022 走看看