-1

Web サイトにデータを送信する Web アプリに取り組んでいます。Web サイトはデータをデータベースに更新し、webapp ページを置き換える json 配列を返します。クエリの作成に ajax を使用しています。Web ページの上書きを防ぐ方法を知る必要があります。サーバーは私のものではないため、同じ起点ポリシーの問題がある可能性があります。と
を確認しました。それぞれ 4 と 0 です。stackoverflow に関するいくつかの投稿によると、origin ポリシーが原因で 0 ステータスが発生しますが、通常、この問題を抱えている人はサーバー側プログラミングの変更にアクセスできるため、解決策を得ることができませんでした。 json を読み取ってアプリの値を抽出したいのですが、サーバーを使用すると空白の文字列が返されます。xmlhttp.readystatexmlhttp.status
xmlhttp.responseText

どんな助けでも大歓迎です。
ありがとう

私のコード:

function sendAndReceive() {

    var xmlhttp;
    xmlhttp = new XMLHttpRequest();

    xmlhttp.onreadystatechange = function () {
        document.getElementById("postevent").innerHTML = "state changed";
        document.getElementById("postevent").innerHTML = "" + xmlhttp.readyState + " " + xmlhttp.status;
        if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
            document.getElementById("postevent").innerHTML = "success response";
            document.getElementById("postevent").innerHTML = "this is it" + xmlhttp.responseText;
        }
    }

    var url = "http://simple.ap.ernet.in/api/home/resource.php/resource/node?";
    url += "key=" + document.getElementById("key").value + "&";
    url += "datasetId=" + document.getElementById("datasetId").value + "&";
    url += "localId=" + document.getElementById("localId").value + "&";
    url += "nodeName=" + document.getElementById("nodeName").value + "&";
    url += "nodeDesc=" + document.getElementById("nodeDesc").value + "&";
    url += "lat=" + document.getElementById("lat").value + "&";
    url += "long=" + document.getElementById("long").value;

    document.getElementById("postevent").innerHTML = url;
    xmlhttp.open("POST", url, true);
    xmlhttp.send();
}
4

1 に答える 1

1

既知の唯一の回避策は、オリジンが 1 つしかないとブラウザに認識させることです。最も簡単な方法は、他のサーバーに中継する自分のサーバーにプロキシを配置することです。独自のサーバーが Apache にある場合は、mod_proxyを使用できます(この質問を参照してください)。

ただし、他のサーバーがクロスオリジン要求を許可していない場合、それを行うことはおそらくそのポリシーに反していることに注意してください。また、大きなサーバーの場合は、それを検出してサーバーの IP を禁止する可能性があります。

于 2012-12-20T07:33:16.960 に答える