やあ、
JQuery経由で行われるphpスクリプトにXMLHttpRequestsを投稿する必要があるブックマークレットを実装しています。
基本的に、これは次のようになります (単純な例です...):
Javascript:
$.post('https://www.myserver.com/script.php').always(function(data) {
console.warn('data:', data);
}
script.php:
<?php
header('Access-Control-Allow-Origin: *');
$res["isSession"] = false;
echo json_encode($res);
最初は null-origin のためにまったく機能しませんでしたが、この投稿を見た後、「header('Access-Control-Allow-Origin: *');」を追加しました。ライン。
この行を使用すると、ローカルにインストールされた Apache でスクリプトを実行すると、少なくとも機能します。
残念ながら、共有ホストにあるオンライン サイトで実行しようとするとすぐに機能しませんが、「XmlHttpRequest エラー: Origin null は Access-Control-Allow-Origin では許可されていません」というエラー メッセージが表示されます。
共有ホストでは、Apache も実行されています。これは、いくつかの Apache-config が原因である可能性がありますか? はいの場合、どちらですか?
他に何が問題で、どうすれば解決できますか?
ありがとう
ps .: jquery-post のデータ型として jsonp を明示的に使用すると動作しますが、一部の php ファイルとそれらを使用する他の JavaScript も書き直す必要があります。したがって、可能であればこのオプションは避けたいと思います...
編集:オンラインサーバー上のphpファイルが、htaccessファイルで「ロック」されているディレクトリ内にあることがわかりました。誰でもアクセスできるディレクトリにphpファイルを移動すると、前述のエラーメッセージが表示されません。
この問題を回避する方法はありますか? php ファイルを公にアクセス可能なディレクトリに配置することは、私の好みのオプションではありません...