2013-04-16 61 views
0

我有以下jquery ajax調用,並且它在純粹的jquery文件中工作正常。從javascript進行Ajax調用

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>"); 

    %> 
+0

你如何使用該功能'myAjax()'? – Shoe

+0

我從另一個javascript函數簡單地調用了myAjax。像這樣myAjax(); – bdfios

+0

你能發佈kscript.jsp文件嗎? – insomiac

回答

0

它看起來像一個文件夾結構問題,您shoudl確保相對路徑是好的,我的意思是,如果你是從一個js調用你應該指出/ JSP /yourJsp.jsp,檢查...順便說一下,你是否使用F12工具來驗證來自服務器的響應?

+0

我確定。該文件與我完全寫成jquery時的文件夾在同一文件夾中,並且一切正常。我沒有改變jsp文件的位置。這是一個奇怪的。是的,我還使用IE上的F12來獲取控制檯。 – bdfios

+0

你有沒有試過/kscript.jsp? – elopez

+0

我剛剛嘗試過,但沒有奏效。 – bdfios

0

我想你犯了一些錯誤,以調用java腳本method.so檢查或你有沒有描述javascript標記內的ajaxcall。

+0

我簡單地使用ajaxFunction()來調用包含Ajax調用的函數; – bdfios

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}, 
+0

是的,這是事實。我其實是在我的代碼中做的。我從代碼中只複製了一段代碼並改變了這些參數。它沒有工作,''。 – bdfios

+0

@bdfios不斷調試jsp,500錯誤意味着服務器發生錯誤,而不是客戶端。 –

+0

好的。我會。感謝大家的幫助。 – bdfios