0

ユーザーがリンクをクリックしたときに、そのドメインでセッションを維持するために、別のドメインのページにリクエストを送信する必要があります。応答データは気にしません (ステータス コードを除い、ページがダウンしていないことを確認できます)。経由でリクエストを発行しようとしました$.ajaxが、同一オリジン ポリシーで許可されていません。

リクエストを通過させる最良の方法は何ですか?

ページに iframe を書き込む必要がありますか? スクリプトタグ?それを機能させるオプションはあります$.ajaxか?

編集:また、後で何かを実行できるように、リクエストがいつ通過したかを知る必要があります (つまり、コールバックが必要です)。


並べ替えを追加dataType: 'jsonp'すると、サイトが返すものを実行したくないことを除いて、機能します。私が要求しているページは通常の古い HTML ページですが、サーバー上でセッションを維持するためのトリガーが発生します。

4

2 に答える 2

1

Image「クラス」を使用してリクエストを送信できます。

var img = new Image();
img.onerror = img.onload = function() { console.log('Sended') }
img.src = "http://google.com?hey=google&rnd=" + Math.random() // random is used to prevent caching

ただし、応答が画像でない限り、リソースの可用性に関する情報は得られません。

また、このソリューションがクロスブラウザーであるかどうかもわかりません。最近の Opera と Chrome では動作するようですが、他のブラウザではテストしていません。

ところで、この画像アプローチは安全な唯一のもののようです。スクリプトを含めたり iframe をロードしたりすると、単純な画像は無害のままですが、ページに悪影響を及ぼす可能性があります。

于 2013-02-05T19:12:50.713 に答える
0

これはうまくいくようです:

$('#myelement').on('click',function() {
    $('<iframe>', {src:'http://otherdomain.com/page'}).hide().load(function() {
        $(this).remove(); //clean up the DOM
        // do stuff
    }).appendTo('body');
});
于 2013-02-05T19:09:57.517 に答える