未捕获的ReferenceError:未定义

时间:2015-10-05 19:28:42

标签: javascript java jsp web-applications scriptlet

我有一个javascript函数,可以生成ajax get请求。这是一个遗留应用程序,我只能做我能做的事情。我不能使用jquery。

正如您所看到的,我正在使用scriptlet来访问请求范围中的对象。我试图提醒scriptlet返回的值,但我一直在

  

未捕获的ReferenceError:谷歌未定义

“google”是scriptlet返回的值,它是预期/正确的值。

function getLinkAddress(linkClicked){
    httpGetUrl("http://www.google.com");    
    alert(<%=((DynaActionForm) request.getAttribute("ipacForm")).get("url").toString() %>);
}       

function httpGetUrl(theUrl){
            var xmlHttp = new XMLHttpRequest();
            xmlHttp.open("GET", "?screenName=LinkAddress&buttonName=get", false);
            xmlHttp.send(null);
        }

正如您在我的调试控制台下图所示,alert()内的值正确评估为“google.com”

enter image description here

2 个答案:

答案 0 :(得分:1)

您正在尝试警告字符串,但您的代码认为它是一个变量,从而导致“未定义”错误。你需要用引号括起你的答案:

alert("google.com");

答案 1 :(得分:1)

问题是window.alert方法需要一个字符串,并且你为它传递了一个未定义的值。浏览器会尝试查找全局变量google,并将一个属性命名为google,名为com,因此无法找到,并且会抛出错误。

你想要的是提醒字符串'google.com',所以你需要引号:

alert('<%=((DynaActionForm) request.getAttribute("ipacForm")).get("url").toString() %>');