すべてを Apache htaccess に追加しました。
ヘッダー セット Access-Control-Allow-Headers: X-Requested-With ヘッダー セット Access-Control-Allow-Methods: OPTIONS ヘッダーに Access-Control-Allow-Methods を追加: GET ヘッダーに Access-Control-Allow-Methods を追加: POST ヘッダーは Access-Control-Allow-Headers を追加します: Content-Type Header add Access-Control-Allow-Headers: Depth Header add Access-Control-Allow-Headers: User-Agent Header add Access-Control-Allow-Headers: X-File-Size Header add Access-Control-Allow-Headers: X-Requested-With ヘッダーは Access-Control-Allow-Headers を追加します: If-Modified-Since Header add Access-Control-Allow-Headers: X-File-Name ヘッダー追加 Access-Control-Allow-Headers: Cache-Control ヘッダー セット Access-Control-Allow-Origin: http://mysite.com ヘッダーは Access-Control-Allow-Origin を追加します: https://mysite.com ヘッダー セット Access-Control-Allow-Credentials: true
これをjquery $.ajaxに追加しました:
xhrFields: { withCredentials: 真 }
絶対に何も機能しません。
私は $.ajax をやっています
タイプ: 'POST', データ型: 'json'
上記のヘッダーをすべて設定することで、jsonpではなくjsonを実行できると思いました(jsonpを使用しないでください。jsonp以外は使用しないでください。起動に成功しません。please.god.no)
私は限界に来ています。私は良いオレを得ています
XMLHttpRequest はhttps://mysite.com/aDirectory/aSecureFile.phpを読み込めません。Origin http://mysite.comは Access-Control-Allow-Origin で許可されていません。
助けてください。私はここで死にかけています。私はどこでも見たことを約束します、ああ、私はどこでも見ましたか。
よろしくお願いします!
明瞭さ
私のヘッダーはすべて出くわしています。応答ヘッダーでそれらを確認できますが、まだ上記のエラーが発生します。サーバーがブロックされていませんか? ブラウザ?httpsを行うために何か特別なことをしなければなりませんか? CORS を許可するために設定する必要がある Apache の別の設定はありますか? 私のjQuery $.ajaxは正しいですか? データと成功とエラー (および URL は常に https) を除けば、jQuery の $.ajax に対して行っていることはこれだけです。
再度、感謝します!
新着
クロス ドメイン AJAX プリフライトがオリジン チェックに失敗しても役に立ちませんでした (私はそうは思いません)。追加した
ヘッダー セット Access-Control-Allow-Headers: ORIGINS(セットと追加の調整)。パイプを下るすべての応答ヘッダー。
新しい
これらを追加
Header add Access-Control-Allow-Headers: Origin Header add Access-Control-Allow-Headers: Acceptまだ何もない
リクエストヘッダー
これらは役に立ちますか?
Accept:application/json, text/javascript, / ; q=0.01 Content-Type:application/x-www-form-urlencoded; 文字セット=UTF-8 Origin: http://mysite.com Referer: http://mysite.com/ User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.11 (Gecko のような KHTML) Chrome/23.0.1271.64 Safari/537.11
PHP
header("Access-Control-Allow-Origin: http://mysite.com"); header("Access-Control-Allow-Origin: https://mysite.com");
応答ヘッダーの明確さ
RESPONSE HEADERS は、クロス ドメインの https ajax ではなく、すべての通常のリクエストで送信されます。
サーバ
CentOS 5.8、Apache 2.2.2、PHP 5.3、cPanel、WHM
PHP が実行されていない場合は問題ありません
というわけで、慌ててslashingweaponのcors.phpをphpタグなしでそのままコピーしてみました。上記の設定を使用して $.ajax でテスト ページを作成しました。
応答ヘッダーで完全に機能しました(ajaxが起動したときにエラーがなかったため)。タグを PHP に追加するとすぐに、エラーが発生しました。PHPが実行されていない限り、それがディレクトリの問題であるかどうかを確認し、ルートとサブディレクトリの両方に配置しました。
これは誰かにとって何か意味がありますか?
反転する必要がある PHP 設定はありますか?
これを私と一緒に磨いてくれてありがとう!
心拍があります
htacess の複数の引数がサーバーを台無しにしているようです。上記のすべてのオプションをこれに減らしました(これは私にとっては問題ありませんが、もっと必要とする愚か者には同情します):
<IfModule mod_headers.c>
<FilesMatch "\.(php)$">
Header set Access-Control-Allow-Origin: http://mysite.com
Header add Access-Control-Allow-Methods: POST
</FilesMatch>
</IfModule>
私がPHPに入れたのは
echo "これは少なくとも動作します":
そして、それは応答で来ました。PHP が失敗する原因を突き止めたら、投稿します。
もう一度、ありがとう!
Zend Guardが問題ですか?
Sooooooooo、ごめんなさいみんな。私のサイトで Zend Guard が実行されていることを追加するのを忘れていました。それが原因だと感じてください。