2015-09-26 8 views
7

上に存在している私は、角のHTTP POSTを使用してサーブレットにデータを送信しようとしています、角度HTTP POSTリクエスト - いいえ「アクセス制御 - 許可 - 起源」ヘッダが要求されたリソース

var httpPostData = function (postparameters,postData){ 

    var headers = { 
       'Access-Control-Allow-Origin' : '*', 
       'Access-Control-Allow-Methods' : 'POST, GET, OPTIONS', 
       'Accept': 'application/json' 
      }; 
    return $http ({ 

    method : 'POST', 
    url  : 'http://localhost:8080/json/jasoncontroller', 
    params : postparameters, 
    headers: headers, 
    data : postData 
    }).success (function (responseData){ 
     return responseData.data; 
    }) 
} 

しかし、私は続けますよエラーが発生しました要求されたリソースに 'Access-Control-Allow-Origin'ヘッダーがありません。したがって、原点「ヌル」はアクセスが許可されません。

私は私がHTTPからのデータを投稿する削除する場合はそれが正常に動作しませんが、データとは運

response.addHeader("Access-Control-Allow-Origin", "*"); 
    response.addHeader("Access-Control-Allow-Methods", "POST, GET, PUT, OPTIONS, DELETE"); 
    response.addHeader("Access-Control-Max-Age", "3600"); 
    response.addHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept"); 

私のサーブレットに次のヘッダーを設定していませんでした。

enter image description here

+0

OPTIONSリクエストのステータスと応答ヘッダーをチェックします。これらのアクセスコントロールヘッダーは、そのプリフライトリクエストに含まれている必要があります – charlietfl

+1

私は同じ問題を抱えていましたが、 'response.addHeader(")の代わりに 'response.setHeader(" Access-Control-Allow-Origin "、" * "); "Access-Control-Allow-Origin"、 "*"))。 'addHeader'メソッドを使うと、APIに従って同じヘッダに多くの値を渡すことができます。 [javadoc](http://docs.oracle.com/javaee/7/api/javax/servlet/http/HttpServletResponse.html#addHeader-java.lang.String-java.lang.String-)を参照してください。 –

+0

@charlietflネットワークレスポンスヘッダの画像を追加しました。 – Nomad

答えて

0

は、実際に何が起こるかは、2つのコールが行われ、いくつかのフレームワークである方法が利用可能であるかチェックし

  • OPTIONS、
  • そして、実際の呼び出しがありました。

オプションを使用すると、また、CORSを有効にするには、このchrome extensionをインストールすることができます200 OK

if(request.methord == 'OPTIONS'){ 
    res.send(200); 
    } else { 
    next(); 
    } 

ちょうど空の答えを必要とする、それが簡単にアウトです!

関連する問題