使用ajax将javascript变量传递给servlet
我有一个从javascript代码中恢复的frameId变量,我想将它传递到我的servlet,为此我使用ajax,但它不起作用: 以下是我的javascript方法:使用ajax将javascript变量传递给servlet,java,javascript,ajax,servlets,Java,Javascript,Ajax,Servlets,我有一个从javascript代码中恢复的frameId变量,我想将它传递到我的servlet,为此我使用ajax,但它不起作用: 以下是我的javascript方法: function createYTEvent(frameID,j) { return function (event) { var player = playerArray[frameID]; var duration=player.getDuration(); if(!videoArr
function createYTEvent(frameID,j) {
return function (event) {
var player = playerArray[frameID];
var duration=player.getDuration();
if(!videoArray[j].valide){
if (event.data == YT.PlayerState.PAUSED) {
if(((player.getCurrentTime()*100)/duration)>2){
videoArray[j].valide=true;
$.ajax({
type: 'GET',
url: 'localhost:8080/favoris',
data: frameID
});
}
}
if (event.data == YT.PlayerState.ENDED) {
videoArray[j].valide=true;
alert("frame id"+frameID + "valide= "+ videoArray[j].valide);
}
}
}
}
这是我的servlet:favoris.java
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
String n1 = request.getParameter("frameID");
out.println(n1);
}
您能帮我吗…根据您在服务器上处理get请求的方式,听起来您希望在ajax调用中使用名为“frameID”的命名参数。如果是这种情况,那么ajax调用中的
数据
行需要更改为:
$.ajax({
type: 'GET',
url: 'localhost:8080/favoris',
data: {"frameID": frameID}
});
这将把它作为localhost:8080/favoris?frameID=xxx
放入URL,然后是服务器端代码request.getParameter(“frameID”)
可以从URL参数获取它
另外,在将来,
“不起作用”
不是一个非常有用的描述发生了什么,这往往使我们不得不猜测什么可能是错误的。你应该解释你在服务器上观察到了什么,以及你采取了什么样的调试或诊断步骤。 < P>谢谢你对我的回应,我会考虑你的意见。
我将servlet放在一个包(package1)中
下面是我的servlet的doGet方法的代码
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
String n1 = request.getParameter("frameID");
out.println(n1);
}
变量frameId的内容不会出现在输出中,即段落并不总是出现。有必要在servlet和url之间进行如下映射(对应):
@WebServlet(name = "favoris1")
public class favoris extends HttpServlet
例如,如果项目名为“MyProject”,url必须为:
var url="/MonProjet/favoris1"
突然,ajax代码变成:
$.ajax({
type: 'GET',
url: '/exempleYoutube/favoris1?frameID='+frameID,
success: function(resp){
alert(resp);
}
});
和servlet:
@WebServlet(name = "favoris1")
public class favoris1 extends HttpServlet {
.
.
.
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
String n1 = request.getParameter("frameID");
out.println("frameID= "+n1);
}
@WebServlet(name = "favoris1")
public class favoris1 extends HttpServlet {
.
.
.
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
String n1 = request.getParameter("frameID");
out.println("frameID= "+n1);
}