首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >当不在livereload或local中时,Ionic Http在解析过程中失败

当不在livereload或local中时,Ionic Http在解析过程中失败
EN

Stack Overflow用户
提问于 2019-02-22 04:16:09
回答 1查看 77关注 0票数 0

只有当我编译我的应用程序ionic cordova run android时,我才得到这个错误

如果我用--livereload编译它,就不会发生这种情况,我使用代理来解决CORS问题

代码语言:javascript
复制
{
  "name": "gestor",
  "type": "ionic-angular",
  "integrations": {
    "cordova": {}
  },
  "proxies": [
    {
      "path": "/api",
      "proxyUrl": "https://gestor2.siacomsistemas.com.br/api"
    }
  ]
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-22 04:34:16

问题是,对于生产环境,我不能使用代理,所以我需要在创建URL时进行测试

代码语言:javascript
复制
    protected baseApi = "/api/";

    constructor(protected platform: Platform) {
        if (platform.is('cordova')) {
            this.baseApi = "https://gestor2.siacomsistemas.com.br/api/";
        }
    }

CORs的问题出在我的api服务器端,我使用的是laravel,需要创建一个CORs中间件

代码语言:javascript
复制
\\app\Http\Middleware\Cors.php

<?php

namespace App\Http\Middleware;

use Closure;


class Cors {

    public function handle($request, Closure $next)
    {
        return $next($request)
            ->header('Access-Control-Allow-Origin', '*')
            ->header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS')
            ->header('Access-Control-Allow-Headers', 'Content-Type, Accept, Authorization, X-Requested-With, XMLHttpRequest');
    }
}

在我的内核上调用它

代码语言:javascript
复制
\\app\Http\Kernel.php

    protected $middleware = [
        \Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class,
        \Illuminate\Foundation\Http\Middleware\ValidatePostSize::class,
        \App\Http\Middleware\TrimStrings::class,
        \Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
        \App\Http\Middleware\TrustProxies::class,
        \App\Http\Middleware\HttpsProtocol::class,
        \App\Http\Middleware\Cors::class,
    ];
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54815533

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档