過去 2 日間で、Web サイトの静的ページへの第 3 レベル ドメイン名の直接 URL 書き換え (http://123.456.789.com/ から http://www.789 への UrlRewrite など) を実装する必要がありました。 .com/news/123.html
そういえば、js のクロスドメインアクセスとは関係ないかもしれませんが、思い浮かぶ疑問はすべて UrlRewrite に関連しています。これで、URLRewrite の準備が整いました。ブラウザのアドレス バーに http://123.456.789.com/ と入力すると、これが http://www.789.com/news/123.html から直接送信されることがわかります。アクセスしたページで問題が発生し、Web ページ上の画像、スタイル、JS が機能を失ったようです。
2 つのアドレス バーの URL を見て、突然頭をたたいてアイデアを思いつきました。このページのソースコードは、画像、CSS、JS を相対パスでリクエストしていることがわかりました。もちろん、 http://www.789.com/news/123.html のパスに直接アクセスする場合は問題ありませんが、 http://123.456.789.com/ を使用してアクセスする場合は、この 2 つを見てください。たとえば、1 の image/1.gif は http://www.789.com/news/1.gif をリクエストするのと同じですが、2 ではそれと同じです。 http://123.456.789 になります。 .com/images/1.gif 明らかに、この画像をリクエストすることはできません。この道の下ではこの写真は決して見つからないからです。さて、簡単にするために、インターネット上で他の人が紹介した多くの方法を使用せず、絶対パスを使用して解決します。わかりました。すべてがとても自然でスムーズに見えます。しかし、本当の問題はまだこれからだ。
ここまでのところ、タイトルと一致していないようです。心配しないでください。1 つの問題は、次の問題が発生する前に必ず解決されます。
まず、私のページについて説明します。このページはプログラムによって静的に作成されていますが、静的なページに表示される情報は IFRAME を使用することで解決できると考えている人も多いでしょう。しかし、この解決策は私が使いたいものではありません。1. IFRAME は他の方法よりも効率が低く、2. IFRAME は這うクモに適していません。そこで、ここではまず JQUERY のロード関数を使用して動的ページを直接リクエストし、返された動的情報を静的ページに表示しました。さて、この時点で、この日記が「jquery クロスドメイン アクセス問題」と呼ばれている理由をすでに知っている友人もいるかもしれません。
まず、jquery ロード関数のパラメーターを確認します $("#head").load("http://www.cnblogs.com/project/ajax.php"{"Action":"head "}); もちろん、上記のレッスンを通じて、パラメーターは $("#head").load("http://www.789.com/project/ajax.php"{"Action":) に変更されています。 "head" }); ただし、「jquery.js 138 行目へのアクセスは許可されていません」というメッセージが表示されたため、juqery 138 行目を確認しました。ロード関数に問題があることがわかりました。正直に言うと、圧縮された JS コードの束は人々を死にたくさせます。) さて、インターネットで Google にアクセスしたところ、何人かの人の回答が目に留まりました。彼らは皆、これは JS のクロスドメイン操作に問題があると言っています。 JS 自体はドメインを越えて直接動作することはできません。次に、独自の第 3 レベル ドメイン名 URLRewrite に連絡し、クロスドメインの問題について考えます。第 3 レベル ドメイン名の下にあるドメインは 123 の下、456 の下、789 です。リクエストは 789.com ドメイン名の下にあります。クロスドメインではない場合はどうなりますか?突然光が見えます。確かに問題は見つかりました。
Google で検索を続けてください。多くの人が jquery getJson をコールバック関数を使用して解決することを推奨しています。笑、http://blog.ossxp.com/ を引き続き検索してください。 2010/02/462/ この記事は非常に優れており、私は今でも自分のプロジェクトでその例に従っています。問題は解決しました!
HTML ページの jquery コード