这是我的功能。我正在尝试从下面的JSP页面获取数据。两个文件位于同一个位置。我犯了什么错?
sample.js**(included )):**
function getUnits(){
$.ajax({
url:"../js/addunits.jsp",
success: function(returndata){
alert(returndata);
}
});
}addunits.jsp**:** 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;
}); 发布于 2014-10-18 20:13:45
你忘了冲洗缓冲器。
<%
out.print("hi");
out.flush();
%> 编辑:
这首先是一个假设,如果您有ajax调用的成功状态代码,而且在特殊情况下可能像您这样,但不是所有情况下都是这样,因为如果您使用某个文件中包含的javascript,那么您可能会犯两次相同的错误。当在页面上构建一些URL时,不要在代码中使用相对路径,特别是如果页面是从不同的位置发送/包含的。接下来,在绝对路径中,您应该包含一个上下文路径-- ${pageContext.request.contextPath}或使用JSTL的<c:url>标记。您可以在加载sample.js时这样做,但不能在其中执行,因为您只能在JSP页面上使用JSP内容。因此,您可以在JSP中构建URL,并将其作为参数传递给js函数,就像这样
(文件中的sample.js**:(included )**
function getUnits(theUrl){
$.ajax({
url: theUrl,
success: function(returndata){
alert(returndata);
}
});
}因此,在JSP页面中(您应该使用jsp文件夹来保存JSP页面)使用
<script>
...
getUnits('${pageContext.request.contextPath}/jsp/addunits.jsp');
...
</script>https://stackoverflow.com/questions/26443944
复制相似问题