这是我的功能。我正在尝试从下面的 JSP 页面获取数据。两个文件位于同一位置。我的错误是什么?
sample.js
(包含在某些文件中):
function getUnits(){
$.ajax({
url:"../js/addunits.jsp",
success: function(returndata){
alert(returndata);
}
});
}
JSP页面addunits.jsp
:
<%
out.print("hi");
>%
在 HTML 页面中,我有一个选择列表。
更改时,此功能getunits
将被调用。
$("#select").change(function() {
getUnits();
var e = document.getElementById("select");
var SelValue = e.options[e.selectedIndex].text;
document.getElementById('crs').innerHTML = SelValue;
});
您忘记刷新缓冲区。
<%
out.print("hi");
out.flush();
%>
EDIT:
这是首先的假设,以防万一您有 ajax 调用的成功状态代码,并且可能在像您这样的特定场景中,但并非在所有情况下,因为如果您使用该 javascript包含在某些文件中,那么你可能会犯同样的错误两次。在页面上构建某些 URL 时,不要在代码中使用相对路径,特别是当页面是从不同位置分派/包含时。接下来,在绝对路径中,您应该包含上下文路径${pageContext.request.contextPath}
或使用 JSTL<c:url>
标签。你可以这样做来加载sample.js
但不能在其中,因为您只能在 JSP 页面上使用 JSP 内容。因此,您可以在 JSP 中构建 URL 并将其作为参数传递给 js 函数,如下所示
sample.js
:(包含在某些文件中)
function getUnits(theUrl){
$.ajax({
url: theUrl,
success: function(returndata){
alert(returndata);
}
});
}
因此,在 JSP 页面中(您应该使用jsp
保存 JSP 页面的文件夹)使用
<script>
...
getUnits('${pageContext.request.contextPath}/jsp/addunits.jsp');
...
</script>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)