DedeCMS digg Ajax クロスドメインの実装方法

藏色散人
リリース: 2019-12-18 10:11:08
オリジナル
2395 人が閲覧しました

DedeCMS digg Ajax クロスドメインの実装方法

DedeCMS digg クロスドメイン Ajax を実装するにはどうすればよいですか?

Web プロジェクトは第 2 レベル ドメイン名を使用しているため、元の digg は通常は使用できません。慎重に分析した結果、Ajax JS の送信はドメインを越えて送信できないことが判明しました。

推奨調査: 梦Weavercms

は次の解決策を提供します:

@etongchina 作成 2009-02-06 19:00

実装計画: json 実装と同様

実装原則: js でインポートされたリモート ファイル (js) でローカル データを操作できるようにします

具体的な方法: (http://news.xxx.com を使用) /200812/25-4653.html を例として)

1. http://news.xxx.com/200812/25-4653.html の js 呼び出し部分を変更します;

ローカル HTML または JS ファイルに書き込みます:

ログイン後にコピー

次のコードを変更します: Like

は: いいね

2. リモート ファイルへのアクセス:

リモート ファイル ( http://www.xxx.com/../dig.php?type=digg&tid=456) は同様のコードを返します:

visitCountCallBack({ 
"visitcount":135 
});
ログイン後にコピー

上記のコードは、ローカル関数を呼び出すリモート ファイルと同等です: visitCountCallBack

このようにして、リモートの戻りデータを使用してローカル ファイルを動的に変更できます。

3. 概要:

このソリューションに関しては、現時点では実現可能ですが、時代遅れになると考える人もいます。 JS がその権限を踏み越えるという問題は起こらないと思います。

ここでは AJAX 風のアプリケーションを使用しています。主要なテクノロジは、
历史访问人数:点击test按钮获取数据
今天访问人数:点击test按钮获取数据
阳光指数:点击test按钮获取数据
爱心指数:点击test按钮获取数据
雨露指数:点击test按钮获取数据
营养指数:点击test按钮获取数据
花匠级别:点击test按钮获取数据

ログイン後にコピー

上記のコードをローカル コンピューターにコピーし、IE または FIREFOX で開き、ボタンをクリックします。ページを更新せずに動的な効果が得られ、返されたデータがドメインを越えて取得されることがわかりました。JAVASCRIPT がドメインを越えてアクセスできないことは誰もが知っていますが、これは驚くべきことです。 。 。 。コードを注意深く研究すると、驚くべきことが明らかになりました。

このコード:

 var s = document.createElement("SCRIPT"); 
s.id="cgi_emotion_list"; 
document.getElementsByTagName("HEAD")[0].appendChild(s); 
s.src="http://g2.qzone.qq.com/fcg-bin/cgi_emotion_list.fcg?uin=123456";
ログイン後にコピー

ブラウザは DOM 解析を通じて SCRIPT 要素を取得し、ID 属性と SRC 属性を追加しました。 W3C 仕様の SCRIPT 要素の SRC 属性の公式説明は次のとおりです: script 要素を使用すると、作成者はドキュメントに動的スクリプトを含めることができます。src 属性が設定されている場合、script 要素は外部ファイルを参照します。の値属性は URI (または IRI) である必要があります。src 属性が設定されていない場合、スクリプトは要素の内容によって指定されます。次のように解釈されます: SCRIPT タグの SRC 属性が定義されている場合、SCRIPT タグは以下を参照します外部ファイル、および属性値は URL である必要があります。これは、SCRIPT がこの URL からファイルの内容を参照することを意味します。全員がブラウザでこのリンクにアクセスします: http://g2.qzone.qq.com/fcg-bin/cgi_emotion_list.fcg?uin=123456 JAVA の SERVLET に似たこの URL は、次のデータを返します: visitCountCallBack({"visitcount": 65188579 、 "デイビジット":8658、 "スペースマーク":0、 "マークチェンジ":0、 "太陽":1680、 "愛":478、 "雨":1680、 "ニュートリ":1450、 "レベル":5、 " gardener":1});この文字列は JAVASCRIPT 関数であり、入力は JSON 文字列です。このデータが返されると、上記の別の JAVASCRIPT 関数が呼び出されます。 function visitCountCallBack(data){

document.getElementsByTagName("HEAD")[0].removeChild(document.getElementById("cgi_emotion_list")); 
for(var i in data){ 
var e =document.getElementById(i); 
if(e) e.innerHTML=data[i]; 
} 
}
ログイン後にコピー

この関数では、innerHTML バーから返された JSON データを使用して BODY を埋め、ページを更新せずにデータを削除します。もう 1 つの重要な質問があります。 http://g2.qzone.qq.com/fcg-bin/cgi_emotion_list.fcg?uin=123456 は QQ スペースの URL です (uin は QQ 番号です。独自の QQ 番号を入力して試すことができます) (テスト)、JAVASCRIPT は他のドメインからデータを呼び出します。この方法はデータを取得するのが比較的簡単で、ドメインを越えてデータにアクセスすることもできるため、単純で小規模な非リフレッシュ効果に適しています。いつかブラウザが更新され、このアクセス方法が拒否された場合、この方法で取得したデータが使用できなくなる可能性があることが少し心配です。皆さんもこの方法は注意して使用することをお勧めします。 ! !

以上がDedeCMS digg Ajax クロスドメインの実装方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!