首页 > 解决方案 > 离子 3 + laravel。服务器上的http请求问题

问题描述

我正在开发一个以 Ionic 3 和 Laravel 作为后端的混合应用程序。我不得不在在线服务器 (000webhost) 上托管后端来进行一些应用内测试,这就是我遇到问题的时候。在托管之前,使用我的计算机作为服务器 (localhost),我能够通过 Ionic 提供程序发出任何类型的请求。使用虚拟主机托管,我只能发出 GET 请求,任何其他类型的请求都会给我MethodNotAllowedHttpException错误。尝试使用邮递员发出相同类型的请求,它已成功处理。

我的配置文件 cors.php 如下:

<?php

return [

    /*
    |--------------------------------------------------------------------------
    | Laravel CORS
    |--------------------------------------------------------------------------
    |
    | allowedOrigins, allowedHeaders and allowedMethods can be set to array('*')
    | to accept any value.
    |
    */

    'supportsCredentials' => false,
    'allowedOrigins' => ['*'],
    'allowedOriginsPatterns' => [],
    'allowedHeaders' => ['*'],
    'allowedMethods' => ['GET', 'POST', 'PUT', 'DELETE'],
    'exposedHeaders' => [],
    'maxAge' => 0,

];

我试图访问的路线:

Route::post ('ajudado/', 'AjudadoController@set_ajudado');

Ionic 中的提供者方法:

set_ajudado(dados):Promise<any>
  {
    return this.http.post(this.url, dados).toPromise().then(function(data){
      return  data; 
   });
  }

标签: laravelpostionic-framework

解决方案


您需要OPTIONS在 CORS 规则中允许该方法。

'supportsCredentials' => false,
'allowedOrigins' => ['*'],
'allowedOriginsPatterns' => [],
'allowedHeaders' => ['*'],
'allowedMethods' => ['GET', 'POST', 'PUT', 'DELETE', 'OPTIONS'],
'exposedHeaders' => [],
'maxAge' => 0,

推荐阅读