1

PHP プロキシ経由でサイトに接続しようとしています (これ: https://raw.github.com/cowboy/php-simple-proxy/master/ba-simple-proxy.php )。これは JavaScript です。応答で何かを行う関数:

編集:コードは次のようになります。まだ葉巻はありません。

function exista(word) {

    alert(word);
    var proxy = 'ba-simple-proxy.php?url=';
    var uri = "http://api.wordreference.com/0.8/ff175/json/roen/" + word;
    uri = encodeURIComponent(uri);
    alert(proxy + uri);
    var cuvantulexista = 1;
    jQuery.ajax({
        "async": false,
        "url": proxy + uri,
        "dataType": 'json',
        "method": "GET",
        "success": function (data) {
            alert("HERE!");
            if (data.Error || data.Response)
                cuvantulexista = 0;
        }
    });
    return cuvantulexista;
}

php ファイルは、上記の関数を含む js ファイルと同じフォルダーと、html ファイルを含む public フォルダーにあります。

問題は、何の反応も得られず、その理由が本当にわからないことです。

また、次のように html に php を含めました。

<?php
    include("js/ba-simple-proxy.php");
?>

私の極度の初心者で申し訳ありませんが、PHPとクロスドメイン通信を扱うのは初めてです。ありがとうございました。:)

編集:それが役立つ場合、ページはドメインでホストされていません。

Edit2: それで、 --disable-web-security なしで Google Chrome を開いたところ、このエラーが再び発生しました:

XMLHttpRequest cannot load file:///home/bogdan/Scrabble-Online/public/ba-simple-proxy.php?url=http%3A%2F%2Fapi.wordreference.com%2F0.8%2Fff175%2Fjson%2Froen%2FRHE. Origin null is not allowed by Access-Control-Allow-Origin. 

それでも、localhost で起動すると、メッセージは表示されません。繋がらないだけです。私は今、ひどく混乱しています。

4

1 に答える 1

0

クロス サイド リクエストを行うには、ターゲット ページで次のアクセスを許可する必要があります。

header('Access-Control-Allow-Origin: *');

これをプロキシ スクリプトの先頭に追加できます。*ドメインに置き換えたほうがよいでしょう。

ただしfile://、URL は承認できません。したがって、実際のドメインが必要です。

https://stackoverflow.com/a/3744697/956397も参照してください

于 2013-01-15T12:25:39.707 に答える