FireFox 3 でのこの Ajax クロス サイト スクリプティングの問題をどのように回避しますか?
5 に答える
jQuery を使用している場合、これを克服するためのコールバック関数があります。
http://docs.jquery.com/Ajax/jQuery.ajax#options
jQuery 1.2 では、"myurl?callback=?" のように JSONP コールバックを指定すると、別のドメインにある JSON データを読み込むことができます。jQuery は ? を自動的に置き換えます。呼び出す正しいメソッド名を使用して、指定したコールバックを呼び出します。または、dataType を「jsonp」に設定すると、コールバックが Ajax リクエストに自動的に追加されます。
または、クロスドメイン呼び出しを行うサーバー側スクリプトに ajax リクエストを作成し、データをスクリプトに戻すこともできます。
もう 1 つの解決策: ヘッダーだけが必要な場合は、メソッドとして "HEAD" を指定すると、セキュリティの問題は発生しません。たとえば、Web ページが存在するかどうかだけを知りたい場合。
var client = new XMLHttpRequest();
client.open("HEAD", my_url, false);
client.send(null);
if(client.readyState != 4 || client.status != 200) //if we failed
alert("can't open web page");
使用している AJAX ライブラリ、何を達成したいのか、どのようにそれを行うのかなど、さらに詳しい情報があれば幸いです。
たとえば、許可されていないクロスドメイン Ajax リクエストである可能性があります。この場合、JSONを使用します。