从javascript调用Ajax

时间:2013-04-16 18:06:19

标签: javascript jquery ajax

我有以下jquery ajax调用,它在纯粹的jquery文件中工作正常。

var request = $.ajax({
    url: "kscript.jsp",
    type: "POST",
    data: {st:start, sp:stop},
    dataType: "html"
});
request.done(function(msg) {
    $("#output").html( msg );
    alert("Success!!!"+msg);
});
request.fail(function(jqXHR, textStatus) {
    alert( "Request failed: " + textStatus );
});

此后我将我的代码重写为javascript,但我现在将ajax调用直接放在javascript函数中。这没有用,我收到500内部服务器错误。

function myAjax(){
    var request = $.ajax({
        url: "kscript.jsp",
        type: "POST",
        data: {st:start, sp:stop},
        dataType: "html"
    });
    request.done(function(msg) {
        $("#output").html( msg );
        alert("Success!!!"+msg);
    });
    request.fail(function(jqXHR, textStatus) {
        alert( "Request failed: " + textStatus );
    });
}

我也试过这个:

function ajaxFunction() {
xmlhttp.open("POST","kscript.jsp",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("st=start&sp=stop");

xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("output").innerHTML=xmlhttp.responseText;
    }
  }

}

但同样的错误:500内部服务器错误。在所有这些实例中,错误指向kscript.jsp。我已确保URL和拼写正确但无法正常工作。我很感激你的建议来解决这个问题。

这是kscript.jsp

    <%

        String astart = request.getParameter("start");
        String sptimes=request.getParameter("stop");

        out.print("<h1> Start is: "+start+"    --  Stop is"+stop +"</h1>");

    %>

3 个答案:

答案 0 :(得分:0)

它看起来像一个文件夹结构问题,你应该确保相对路径没问题,我的意思是,如果你是从js调用你应该指向/jsp/yourJsp.jsp,顺便问一下......顺便说一下,您使用F12工具验证来自服务器的响应吗?

答案 1 :(得分:0)

我认为你在调用java脚本方法时犯了一些错误。所以检查或者你是否在javascript标签中描述了ajaxcall。

答案 2 :(得分:0)

您正尝试在jsp中访问错误的参数。

此处发生错误:

String astart = request.getParameter("start");

参数为stsp,而不是startstop

你需要:

String astart = request.getParameter("st");
String sptimes=request.getParameter("sp");

或者,您可以更改js以传递正确的参数:

data: {start:start, stop:stop},