解决双URL问题..?

时间:2010-07-30 04:46:31

标签: php javascript ajax cakephp

我正在使用cakephp我有2个链接:

<a href="#" tabindex="1" onclick="base_load_demo1('http://www.boxyourtvtrial.com/widget/beer/main/');" >beer</a>
<a href="#" tabindex="2" onclick="base_load_demo('http://www.boxyourtvtrial.com/widget/cocktail/main/');">cocktail</a>

使用以下JavaScript:

var Url1 = "http://www.boxyourtvtrial.com/widget/cocktail/main/";
var Url2 = "http://www.boxyourtvtrial.com/widget/beer/main/";
var Url3 = "http://www.boxyourtvtrial.com/widget/beer/mini/";

function base_load_demo(Url) {
  remoteCall(Url1,"","mainLeftContent");
  //remoteCall("SCRIPT_PATH","QUERY_STRING","TARGET_FUNCTION");
}

function base_load_demo1(Url2) {
  remoteCall(Url2,"","mainLeftContent");
  //remoteCall("SCRIPT_PATH","QUERY_STRING","TARGET_FUNCTION");
}

当我点击第一个链接时,它通过ajax调用显示其内容,但是当我点击第二个链接时,它给出的错误如下:

  

缺少控制器

     

错误:Http:无法找到控制器。

     

错误:在文件中创建下面的Http:Controller类:app / controllers / http:controller.php

<?php
class Http:Controller extends AppController {

    var $name = 'Http:';
}
?>
  

注意:如果要自定义此错误消息,请创建app / views / errors / missing_controller.ctp

并在FireFox控制台选项卡中

  

POST http://www.boxyourtvtrial.com/widget/beer/main/http://www.boxyourtvtrial.com/widget/cocktail/main/

我们如何同时解决这种双重URL呼叫?

var xmlHttp;
var uri = "";
var callingFunc = "";
var sResponse = new Array();



function remoteCall(sUrl, sQueryStr, sCalledBy)
{
    alert(sUrl);
    var resStr = "";
var str = " { ";
if(sQueryStr != "") {
    var arr1 = new Array();
    arr1 = sQueryStr.split("&");
    if(arr1){
        for(i=0;i<=arr1.length;i++)
        {
            if(arr1[i] && arr1[i] != "") 
                              {
                var arr2 = new Array();
                arr2 = arr1[i].split("=");
                str += arr2[0]+":'"+arr2[1]+"' ,";

              }
        }
    }
}                   

    str += " tp: 'tp' } ";


    $.ajax({
        type: "GET",     
        url: sUrl,
        data: sQueryStr,
        dataType: "html",
        success: function(data) {
            $("#"+sCalledBy).html(data);
            //jih(sCalledBy,data);
        }
    });

  /*    $.get(sUrl,sQueryStr,function(data) {   
    jih(sCalledBy,data);
    });*/
}

function jih(divid,data)
{
         if(document.getElementById(divid))
                     document.getElementById(divid).innerHTML=data;
    }

1 个答案:

答案 0 :(得分:1)

首次调用其中任何一个页面后,它会加载:

<script type="text/javascript" src="http://www.boxyourtvtrial.com/widget/cocktail/main/js/common.js"></script>
标题中的

。 common.js内部是一个名为 remoteCall 的函数,它覆盖了本地的remoteCall函数。

common.js中的remoteCall函数添加

var url= WIDGET_WEG_PATH+scr_url;

其中 WIDGET_WEG_PATH =“http://www.boxyourtvtrial.com/widget/beer/main/

scr_url =“http://www.boxyourtvtrial.com/widget/beer/main/(新的remoteCall函数的第一个参数)

这就是你在帖子中获得网址“加倍”的原因。

<强>解决方案:

将本地remoteCall函数重命名为distinct。