1

やあ、

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 ファイルを公にアクセス可能なディレクトリに配置することは、私の好みのオプションではありません...

4

0 に答える 0