2016-08-22 42 views
0

私は、トランザクションを処理するためにカスタムアーティザンコマンドを実行しようとしているlaravel APIを持っています。 apiは、マーチャントデータベースの保留中のトランザクションをチェックし、トランザクションデータベースにポストします。 は、私は次のエラーを取得する:私が使用している405メソッドが許可されていませんPOST Laravel

[GuzzleHttp\Exception\ClientException] 
    Client error: `POST http://paycentral.mymarket.com/transactions/bulk` resulted in a `405 Method Not Allowed` response: 
    {"error":{"message":"405 Method Not Allowed","status_code":405,"debug":{"line":446,"file":"\/var\/www\/vhosts\/maindomai (truncated...) 

APIはapi.mymarket.comに位置しています。このようなエラーを検索すると、それがCORS関連の問題だと私は信じています。私はlaravel-corsを使用していて、ヘッダーはapi.mymarket.comとpaycentral.mymarket.comの両方のパブリックフォルダにある.htaccessにAccess Control-Allow-Origin "*"を追加しました。しかし、エラーは依然として持続しています。可能な他の回避策はありますか?現在、ホスティングサービスにはpleskを使用しています。

UPDATE:api.mymarket.com アクセス制御リクエスト・メソッド:POST アクセス制御リクエスト-ヘッダ:私は有料のサブドメイン 起源でプリフライトリクエストをやってみました

MM

それは返さ私が推測する進歩である500の内部エラー。

UPDATEここはpaycentralのroutes.phpです。 cors-libraryはapp.phpに登録されています。あなたのルートはroutes.phpの中で明確に定義され、そして他のすべてが罰金であると仮定すると

<?php 

$api = app('Dingo\Api\Routing\Router'); 

// all routes are protected by the Authenticate middleware which makes sure  the client 
// is authenticated as *somebody* - each resource is further protected by the authorization 
// policies in the App\Api\V1\Policies files to limit the method calls by which client 
// type is attempting to access the resource - these must be mapped in the  AuthServiceProvider 
$api->group([ 
    'version' => 'v1', 
    'namespace' => 'App\Api\V1\Controllers', 
    'middleware' => 'auth' // use the Authenticate middleware 
], function($api) { 

/* 
    * partial CRUD resource routes 
    */ 

    $api->get('transactions/{id}', '[email protected]'); 
    $api->post('transactions', '[email protected]'); 
    $api->put('transactions/{id}', '[email protected]'); 
    $api->post('transactions/bulk', '[email protected]_bulk'); 
    $api->post('transactions/get_updates', '[email protected]_updates'); 
+0

あなたは 'route.php'の経路定義について確信していますか? –

+0

'laravel-cors'ライブラリのミドルウェアをすべてのルートまたはその特定のルートに追加しましたか?また、CORSの問題ではないかもしれません。なぜなら、飛行前にリクエストエラーが出る可能性があるからです。 –

+2

カールリクエストをしている場合は、CORSと何も関係がありません。 CORSは、クロス・オリジン・リクエストを別のドメインとする場合にのみ使用されます。 – Tom

答えて

0

に次の行を追加してみてください。トランザクション/バルクを指していないルートの1つに問題がありました。以前の開発者は、バージョンコントロールメソッドを使わずにいくつかのファイルに文書化されていない変更を加え、プロダクションブランチが破損しました。

0

routes.phpの

paycentral。その後、私は問題を解決し、あなたのfilters.php

App::before(function ($request) { 
    header('Access-Control-Allow-Methods: GET, POST, PUT, DELETE, PATCH, OPTIONS'); 
} 
+0

私はlaravel 5.2を使用しており、filters.phpを持っていません。私はonvardgmbh/laravel-filtersの手順を試してみたが、運がなかった。 –

+0

OK、アプリが起動する前にヘッダーを指定する行を追加して(デバッグのみ)、これが役立つか、別の方向に進むべきかを確認できますか? –

関連する問題