DedeCMS digg 도메인 간 Ajax를 구현하는 방법은 무엇입니까?
웹 프로젝트는 2차 도메인 이름을 사용하기 때문에 원본 디그를 정상적으로 사용할 수 없습니다. 주의 깊게 분석한 결과, Ajax JS 제출은 여러 도메인에 걸쳐 제출할 수 없는 것으로 나타났습니다.
권장 연구: 梦Weavercms
은 다음 솔루션을 제공합니다.
@writer by 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 파일에 쓰기:<SCRIPT LANGUAGE="JavaScript"> function _Digg(type,tid){ var s = document.createElement("SCRIPT"); s.id="cgi_emotion_list"; document.getElementsByTagName("HEAD")[0].appendChild(s); s.src="http://www.xxx.com/../dig.php?type="+type+"&tid="+tid ; //需要统计的php页面的 src } 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]; //一些代码去修改本地html } } </script>다음 코드 수정: d499d079c3b546e300724476b26a400c좋아요5db79b134e9f6b82c0b36e0489ee08ed 는 다음과 같습니다:cfab4601ec966302d2ce5eae5eccc014좋아요4a11e5928b3688cf38c9163b657eb5ac 2. 원격 파일에 액세스: 원격 파일(http://www.xxx.com/../dig.php?type=digg&tid =456) 유사한 코드 반환:
visitCountCallBack({ "visitcount":135 });위 코드는 원격 파일에서 로컬 함수를 호출하는 것과 동일합니다. VisitCountCallBack 이런 방식으로 원격 반환 데이터를 사용하여 동적으로 로컬 파일을 수정하십시오. 3. 요약: 이 솔루션은 현재 가능하지만 일부 사람들은 이 솔루션이 오래될 것이라고 생각합니다. JS가 그 권한을 넘어서는 문제는 없을 것이라고 생각합니다. 여기에 AJAX와 같은 애플리케이션이 있습니다. 핵심 기술은 3f1c4e4b6b16bbbd69b2ee476dc4f83a 태그의 src 속성을 적용하는 것입니다. 다음 HTML 코드를 살펴보세요.
<HTML> <HEAD> <title>异步json例子</title> <SCRIPT LANGUAGE="JavaScript"> function test(){ 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"; // test=function(){}; } 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]; } } </SCRIPT> </HEAD> <BODY> <button onclick="test()">test</button><BR> 历史访问人数:<span id="visitcount" style="color:#6600CC">点击test按钮获取数据</span><BR> 今天访问人数:<span id="dayvisit" style="color:#CC6633">点击test按钮获取数据</span><BR> 阳光指数:<span id="sun" style="color:red">点击test按钮获取数据</span><BR> 爱心指数:<span id="love" style="color:violet">点击test按钮获取数据</span><BR> 雨露指数:<span id="rain" style="color:blue">点击test按钮获取数据</span><BR> 营养指数:<span id="nutri" style="color:green">点击test按钮获取数据</span><BR> 花匠级别:<span id="gardener" style="color:#996633">点击test按钮获取数据</span> </BODY> </HTML>위 코드를 로컬 컴퓨터에 복사한 후 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 속성이 설정되면 스크립트 요소의 값이 참조됩니다. 속성은 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 , "dayvisit":8658, "spacemark":0, "markchange":0, "sun":1680, "love":478, "rain":1680, "nutri":1450, "level":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를 채우는 데 사용되며, 페이지를 새로 고치는 중입니다. 또 다른 주요 질문이 있습니다: http://g2.qzone.qq.com/fcg-bin/cgi_emotion_list.fcg?uin=123456은 QQ 공간의 URL입니다(uin은 QQ 번호입니다. 자신의 QQ 번호를 입력하여 시도해 볼 수 있습니다. (테스트) JAVASCRIPT는 다른 도메인의 데이터를 호출합니다. 이 방법은 비교적 간단하게 데이터를 얻을 수 있으며 도메인 전체에 걸쳐 데이터에 액세스할 수도 있습니다. 단순하고 작은 새로 고침이 아닌 효과에 더 적합합니다. 어느 날 브라우저가 업데이트되어 이 접근 방법을 거부하게 된다면 이렇게 얻은 데이터를 사용할 수 없게 될 수도 있다는 점은 조금 걱정됩니다. ! !
위 내용은 DedeCMS digg Ajax 크로스 도메인 구현 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!