Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 使用Laravel作为REST API的移动设备上的Ionic 4应用程序的本地CORS问题_Angular_Laravel_Api_Ionic Framework_Cors - Fatal编程技术网

Angular 使用Laravel作为REST API的移动设备上的Ionic 4应用程序的本地CORS问题

Angular 使用Laravel作为REST API的移动设备上的Ionic 4应用程序的本地CORS问题,angular,laravel,api,ionic-framework,cors,Angular,Laravel,Api,Ionic Framework,Cors,我已经尝试过在万维网上发布的任何解决方案 简单复制,创建一个新的Laravel应用程序,并配置一个API路由来接收get/post请求 创建一个Ionic应用程序并向API发送get/post请求 在浏览器上试用,根据需要设置CORS,之后浏览器将正常工作 在移动设备(ios、android)上试用,即使在CORS配置之后,它也不会工作 我已经用api get/post路由构建了一个全新的Laravel应用程序,还有一个全新的ionic应用程序,它使用angular的HttpClient,还尝试

我已经尝试过在万维网上发布的任何解决方案

  • 简单复制,创建一个新的Laravel应用程序,并配置一个API路由来接收get/post请求

  • 创建一个Ionic应用程序并向API发送get/post请求

  • 在浏览器上试用,根据需要设置CORS,之后浏览器将正常工作

  • 在移动设备(ios、android)上试用,即使在CORS配置之后,它也不会工作

    我已经用api get/post路由构建了一个全新的Laravel应用程序,还有一个全新的ionic应用程序,它使用angular的HttpClient,还尝试使用Cordova的NativeHttp插件。现在,一个简单的get请求在浏览器中可以正常工作(ionic serve)。如果我尝试在移动设备上发送get/post请求,我会收到“消息”:“Http失败响应:0未知错误”,带有HTTPClient的Angular和本机调用错误:{“status”:-1,“Error”:“无法连接到服务器。”},带有本机Http插件

  • 我尝试在LaravelAPI中设置CORS,我使用barryvdh/LaravelCORS,我尝试制作自己的CORS中间件,我还尝试了另一个LaravelCORS包。在拉雷维尔方面没有任何帮助

    然后我尝试了几个代码和离子应用程序来解决这个问题。包含标题,不包含,简单请求,NativeHTTP cordova插件高级http,Angular http。。。什么都没用

    爱奥尼亚文档中的这个示例不起作用

        import { HTTP } from '@ionic-native/http/ngx';
    
        constructor(private http: HTTP) {}
    
        ...
    
        this.http.get('http://ionic.io', {}, {})
          .then(data => {
    
            console.log(data.status);
            console.log(data.data); // data received by server
            console.log(data.headers);
    
          })
          .catch(error => {
    
            console.log(error.status);
            console.log(error.error); // error message as string
            console.log(error.headers);
    
          });
    
    我收到了“消息”:“Http失败响应(未知url):-1未定义”,在浏览器中使用的是Angular的HTTPClient,它工作得很好

    这也适用于浏览器:

        login(email: String, password: String) {
    
            return this.http.post('https://127.0.0.1:8000/api/login',
              {email: email, password: password}
            ).pipe(
              tap(api_token => {
                this.storage.setItem('api_token', api_token)
                .then(
                  () => {
                    console.log('Token Stored');
                  },
                  error => console.error('Error storing item', error)
                );
                this.api_token = api_token;
                this.isLoggedIn = true;
                return api_token;
              }),
            );
          }
    
    在IOS和Android上,我得到:

    消息“:“0的Http失败响应未知错误”

    我试着使用带电容器和不带电容器的Ionic,我试着用Ionic run——devapp,还有Ionic cordova run ios,还有XCODE等等

    我用Ionic移动应用程序实现的任何LaravelAPI之间的通信都不能与Httprequests一起工作

    我遵循barryvdh包的Cors安装步骤,Cors.php如下所示:

        'supportsCredentials' => false,
            'allowedOrigins' => ['*'],
            'allowedOriginsPatterns' => [],
            'allowedHeaders' => ['*'],
            'allowedMethods' => ['*'],
            'exposedHeaders' => [],
            'maxAge' => 0,
    
    还执行了$middleware步骤以使其全局化,并使用终端命令php artisan vendor:publish--provider=“Barryvdh\Cors\ServiceProvider”

    浏览器在没有配置CORS的情况下无法工作,但当我安装软件包时,浏览器运行良好。本机应用程序没有任何变化,在安装CORS打包后它们仍然无法工作

    全部错误:

        "headers": {
        [ng]     "normalizedNames": {},
        [ng]     "lazyUpdate": null,
        [ng]     "headers": {}
        [ng]   },
        [ng]   "status": 0,
        [ng]   "statusText": "Unknown Error",
        [ng]   "url": "http://127.0.0.1:8000/api/login",
        [ng]   "ok": false,
        [ng]   "name": "HttpErrorResponse",
        [ng]   "message": "Http failure response for         http://127.0.0.1:8000/api/login: 0 Unknown Error",
        [ng]   "error": {
        [ng]     "isTrusted": true
        [ng]   }
        [ng] }
    
    
        [console.log]: "Ionic Native: deviceready event fired after 374 ms"
        [ng] [console.log]: {
        [ng]   "headers": {
        [ng]     "normalizedNames": {},
        [ng]     "lazyUpdate": null,
        [ng]     "headers": {}
        [ng]   },
        [ng]   "status": -1,
        [ng]   "statusText": "Unknown Error",
        [ng]   "url": null,
        [ng]   "ok": false,
        [ng]   "name": "HttpErrorResponse",
        [ng]   "message": "Http failure response for (unknown url): -1         undefined",
        [ng]   "error": "Verbindung zum Server konnte nicht hergestellt werden."
        [ng] }
    
    我知道我已经发布了很多信息,但可能还不够。希望你能理解我的问题,也许有人在Laravel API和Ionic移动应用程序中也遇到了这个问题。

    解决了这个问题

    我没有托管API,只是使用php artisan Service和localhost:8000地址运行它

    我的移动设备无法连接到本地mac地址,否则mac上的模拟器就可以连接到该地址

    因此,移动设备响应:“消息”:“Http失败响应(未知url):-1

    不知道未知错误0是如何发生的,我现在将使用主机地址进行尝试

    无论如何谢谢你。

    解决了这个问题

    我没有托管API,只是使用php artisan Service和localhost:8000地址运行它

    我的移动设备无法连接到本地mac地址,否则mac上的模拟器就可以连接到该地址

    因此,移动设备响应:“消息”:“Http失败响应(未知url):-1

    不知道未知错误0是如何发生的,我现在将使用主机地址进行尝试


    无论如何,谢谢。

    检查这里。检查可能重复。Hi可能重复。你有什么解决办法或消息吗?我也有同样的问题。此外,当我尝试向远程服务器发送请求时,也会出现此错误。Hi。你有什么解决办法或消息吗?我也有同样的问题。此外,当我尝试向远程服务器发送请求时,也会出现此错误。