2016-11-24 16 views
0

こんにちは、この事は私を本当にイライラさせています。私はクロスオリジンの要求をよく理解していません。ここに私のコードは次のとおりです。プリフライトのエラーCross origin Requests

のjavascript:

var config = { 

      headers: { 

       'Access-Control-Allow-Origin' : '*', 
       'Access-Control-Allow-Methods': 'POST, GET, OPTIONS', 
       'X-Parse-Application-Id' : 'xxxx', 
       'dataType' :'json', 
       'Content-Type' : 'application/json' 

      } 
     } 



    $http.post(link,data_model,config). 
     then(function(response) { 

     deffered.resolve(response); 
     }, function(response) { 

     deffered.reject(response) 
     }); 
     return deffered.promise; 
    }; 

これは私がサーバーにポストとして、私はヘッダーを設定する方法です。私はutility.phpというページに投稿しています。

(utility.php)私は以下のヘッダーを持っています。私は私のポストの要求をしようとすると

<?php 
    /** 
    * End point utility class 
    * 
    * 
    * @author Tariiq Henry Bbosa 
    */ 
    header('Access-Control-Allow-Origin: *'); 

    header('Access-Control-Allow-Methods: POST, GET, OPTIONS'); 

私はこのエラーを取得:

XMLHttpRequest cannot load http://localhost:89//fotoserver/utility.php. Request header field Access-Control-Allow-Origin is not allowed by Access-Control-Allow-Headers in preflight response. 

誰かが私はどこ含めるべきヘッダを教えてください。私の要求が通過できるように。読むべき大きなページに私を紹介してください。ここで私を助けてください。私は後で読むでしょう。

答えて

0

CORSの問題を解決するには、サーバーは応答ヘッダーに'Access-Control-Allow-Origin' : '*',...を送信する必要があります。

クライアントがサーバーと異なるドメインで実行されている場合、ブラウザブロックはセキュリティを要求します。サーバーがCross-Originリクエストを許可している場合、ブラウザは不平を言うことはありません。

ので、代わりのクライアント$http.post()リクエストのヘッダーを入れて、プリフライトリクエストの際utility.php

の応答のヘッダーを入れて、次の2つのヘッダーが表示されます:アクセス・コントロール・リクエスト・メソッドおよびアクセス制御-Request-Headers。これらの要求ヘッダーは、サーバーに実際の要求を行うためのアクセス許可を要求しています。実際のリクエストを処理するには、プレフライトの応答でこれらのヘッダーを確認する必要があります。

参考:https://stackoverflow.com/a/8689332/3830485

+0

'ヘッダ(「アクセス制御 - 許可 - 原産地:*」);'それはプリフライト応答で失敗した理由を私は理解してDNTそれがすでに – Andreas

+0

'に既にあります – henrybbosa

+0

あるutility.php' – henrybbosa

関連する問題