2016-08-09 8 views
3

初めてハイブリッドアプリケーションを開発しました。 localhostでスムーズに動作します。しかし、私がそれを生かそうとしたとき、私はこのエラーを受けました。ライブハイブリッドアプリケーションで「アクセス制御が許可された原点」の問題がありません

XMLHttpRequest cannot load https://www.example.com/app/login.php . No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access. The response had HTTP status code 500.

どうしてですか?ここで

は私のAJAXリクエストに設定私のサンプルです:

$.ajax({ 
      type: "POST", 
      url: "https://www.example.com/app/login.php", 
      crossDomain: true, 
      dataType: 'json', 
      data: $.trim(frm.serialize()), 
      timeout: 10000, 
      beforeSend: function() {     
       $('#loader').css({ 
       display: "block" 
       }); 
    } 

その後、私のPHPサーバーコードに:

<?php 
header('Access-Control-Allow-Origin: *'); 
header('Content-Type: application/json'); 
header('HTTP/1.1 200 OK'); 
{ 
//more code here.. 

echo json_encode($result_array); 
} 

あなたが見ることができるように、私はすでに、ヘッダーAccess-Control-Allow-Origin: *を追加しましたが、それはそうです動作しません。このエラーをなくすには、何を知る必要がありますか?または、それの起こりうる問題は何か?

更新:Firefoxでは、これはコンソールログのエラーです:

Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://www.example/app/login.php . (Reason: CORS header ‘Access-Control-Allow-Origin’ missing)

任意のヘルプ?私は自分のアプリケーションを構築する際にintel xdkを使用しています。

答えて

0

ajaxの送信エラーは、使用されるサーバー側(PHPコード)に問題があるため、500 Internal Server Errorより高いPHPバージョンのために。私のホストのPHPバージョンは、私がローカルマシンで使用しているバージョンよりも低くなっています。コードを書き直して最初に応答データをテストしようとすると、私の問題は解決しました。 ajaxリクエストコードには何も問題ありません。

+0

私はあなたがそれをうまく働いてうれしいです:すべての敬意を払って、私はCORSについてではなく、10日前のサーバー側のスクリプトエラーであり、詳細についてはエラーログを見てくださいしかし、あなたは私の答えについて疑問を持ち続けました。答えが役に立つ場合は、それをupvoteする必要があります – BeetleJuice

+0

問題は@ BeetleJuice。ご協力ありがとうございます。 –

+0

* <帽子の先端> * – BeetleJuice

1

私はあなたの問題はあなたのエラーからのアクセス制御と

を行うには何を持っているとは思わない:

The response had HTTP status code 500

は、アプリケーションがクラッシュしたことを示唆しています。その結果、Access-Control-Allow-Originヘッダーが決して適切に設定されませんでした。アクセス制御に問題がある場合、ブラウザ(Firefoxはとにかく)は、ではなく、500 server error

を表示します。クラッシュの原因をエラーログで確認します。 .htaccessを無効にし、クラッシュの一般的な原因がルール/設定の破損であるためにエラーが続くかどうかを確認してください。

+0

私はGoogle Chromeを使用しています。私はfirefoxを使用しようとしましたが、これはエラーです:[HTTP/1.1 500 Internal Server Error 2170ms] –

+0

クロスオリジンリクエストがブロックされました:同じオリジンポリシーでhttps://www.example.com/app/login .php。 (理由:CORSヘッダー「Access-Control-Allow-Origin」がありません)。私の答えに同意する –

+0

。 CORSが問題になると、Firefoxはコード401を返します。あなたがコード '500'を取得したので、根本的な問題は他の場所にあると私は思う。 CORSヘッダーを設定する前にクラッシュしました。したがって、ブラウザはヘッダーを受け取ったことがないことを伝えます。 – BeetleJuice

関連する問題