リモートサーバーでホストされているLaravel 5.1で作成されたREST APIがあります。今、私は別のウェブサイト(私がローカルに持っている)からそのAPIを消費しようとしています。プリフライト要求に対する応答がアクセス制御チェックに合格しないLaravel and Ajax call
私は、CORSヘッダーを送信するために必要な行を設定しました。私はPostmanを使ってAPIをテストしましたが、すべてがOKです!そして、フロントエンドで
、私はこのコードで、AJAXを使用してPOSTリクエストを送信し、ウェブサイトで:
var url="http://xxx.xxx.xxx.xxx/apiLocation";
var data=$("#my-form").serialize();
$.ajax({
type: "POST",
url: url,
data: data,
headers: { 'token': 'someAPItoken that I need to send'},
success: function(data) {
console.log(data);
},
dataType: "json",
});
購入し、私は、コンソールにこのエラーが表示されます。
XMLHttpRequestはhttp://xxx.xxx.xxx.xxx/apiLocationをロードできません。 プリフライト要求への応答がアクセス制御チェックを通過しません。いいえ 要求された リソースに 'Access-Control-Allow-Origin'ヘッダーが存在します。 Origin 'http://localhost'はアクセスできません。
私は(ヘッダーを設定するLaravelミドルウェアを使用して)これを設定APIではバックエンドで
:
return $next($request)
->header('Access-Control-Allow-Origin', '*')
->header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS');
だから、私は正確にある場所について混乱しています問題。
- サーバーには?しかし、なぜPostmanはうまくいくのでしょうか?
- Ajaxコールはありますか?だから、私は何を追加する必要がありますか?