ajax呼び出しを通じてJSONをjavascriptで表示する方法がありますか

私はいくつかのjavascriptを実行して、自分のサイトからクライアントのサイトで応答を得なければならないという状況があり、クロスドメインスクリプティングセキュリティのためにこれを行う最善の方法を考えようとしています。 私はクライアントページにコードスニペットを置くことができます。 私は自分のサイトを自分が好きなだけ変更することができます。

1つのオプションは、iframeを介してページを開くことです。サイトのスニペットでレスポンスを取得し、Cookieを設定して、レスポンスを取得するためにポーリングすることができます。

私はこれを行うさまざまな方法を考えており、私は創造的にしようとしています。私はバックエンドの人で、JavaScriptの経験は少しありますが、クロスドメインのものには対応していません。助けていただければ幸いです。 ありがとう、

0

3 答え

自分の状況で JSONP を使うことができます。

Example with jQuery could be found here

1
追加された
JSONPはあなたの目的に合っています。 JSONPをサポートするには、サーバーを変更する必要があります。基本的には、JSONオブジェクトをコールバック関数の引数としてラップする必要があります。これはJSONPです。詳細が必要な場合はお知らせください
追加された 著者 Raghav,

クライアント側のスニペットを使用して動的にiframeを作成すると、クライアントドメインのサンドボックスに入り、サイトにリクエストを送信できます

0
追加された
追加された 著者 Irishka,

あなたはajax呼び出しでWebサービスを呼び出し、JSON文字列を次のように返すことができます。

$.ajax({
            type: "POST",
            url: "JSON.asmx/Getdata",
            data: {},
            contentType: "text/javascript; charset=utf-8",
            ContentLength: 15000,
            dataType: "text",
            async: true,
           //timeout:10000,
            success: function (msg) {
                asmxdata(msg);
                return false;
            },
            error: function (xhr, ajaxOptions, thrownError, request, error) {
                alert('xrs.status = ' + xhr.status + '\n' +
                            'thrown error = ' + thrownError + '\n' +
                             'xhr.statusText = ' + xhr.statusText + '\n' +
                            'request = ' + request + '\n' +
                            'error = ' + error);
                return false;

            }
        });

次に、Webサービス呼び出しが成功すると(ここではasmxdata()メソッド)、JSON文字列をJSONオブジェクトに評価する方法は次のとおりです。

function asmxdata(data) {
var JObject = eval('(' + data + ');');
}

コントロールに値を割り当てる

document.getElementById('lblfirstname').value = JObject.Table[i].FirstName;

何か不明な点がある場合はコメントしてください。

0
追加された
JavaScript - 日本のコミュニティ
JavaScript - 日本のコミュニティ
2 参加者の

日本人コミュニティのjavascript