2017-10-17 75 views
0

您好,我正在嘗試使用Jquery在jsp頁面上的按鈕單擊事件上傳遞一個URL。 我用這個ajax調用。 JSP:在JSP中追加兩次的URL

<div class="col-lg-3 col-md-3 col-sm-3 col-xs-12"> 
<a class="btn btn-success" style="width: 100%" id='approve'>Approve</a> 
</div> 

jQuery的

$(document).ready(function() { 
      //LIVEICON 
      $('#approve').on('click',function(){ 
       alert("Click"); 
       $('#formeffortloading').attr(
         {      
          action : "${loginbean.contextPath}/effortloading/approveraction" 
         }); 
      var postData = $('#formeffortloading').serializeArray(); 
      var formURL = $('#formeffortloading').attr("action"); 
      console.log(':: Called :: '+formURL); 
      $.ajax(
      { 
       url : 'effortloading/approveraction', 
       type: "POST", 
       data : postData, 
       success:function(data, textStatus, jqXHR) 
       { 
        //data: return data from server 
        console.log(':: << Success data >> :: '+data+':: textStatus ::'+textStatus+':: persistResponse ::'+data.persistResponse); 

       }, 
       error: function(jqXHR, textStatus, errorThrown) 
       { 
         //console.log(':: << failed data >> :: '+data); 
         console.log(':: << failed data >> :: '+jqXHR+':: textStatus ::'+textStatus+':'+errorThrown); 
        //if fails  
       } 
      }); 
       var comment = $('#comments').val(); 
       if(($('#comments').val()!="")){        
        //alert(comment); 
        $('#successalert').html('<strong>Approved...!</strong>').show().fadeOut(5000); 

        } 
       else{ 

        if($("#comments").val()==""){$('#comments').css({'background-color':'rgba(255, 0, 0, 0.09)','border-color':'red'});$('#comments_er').css('display','block');} 
        //if($("#approver").val()==null){$('#approver').css({'background-color':'rgba(255, 0, 0, 0.09)','border-color':'red'});$('#approver_er').css('display','block');} 
       } 
      }); 
     }); 

但點擊該按鈕的URL被附加在兩次這樣的本地主機:8081 /成本覈算/ effortloading/effortloading/approveraction

請告訴我什麼是問題..

在此先感謝..

回答

0

您的文章網址'effortloading/approveraction'是相對路徑 也許你的JSP文件的路徑爲localhost:8081/Costing/effortloading/,讓你的AJAX網址成爲localhost:8081/Costing/effortloading/effortloading/approveraction

使用本網站的根路徑或JavaScript中的變量formURL

$.ajax(
      { 
       url : formURL,//<<<-------- Here 
       type: "POST", 
       data : postData, 
... 
1

看起來您當前的網頁爲localhost:8081/Costing/effortloading。這就是爲什麼您在ajax中給出的相對網址effortloading/approveraction正在附加兩次。你可以做任何一個。

1)把AJAX URL作爲approveraction使得effortloading不會被所附兩次。

2)你可以找到origin與JavaScript,然後你可以追加effortloading/approveraction

如:url: window.location.origin + 'effortloading/approveraction'

$.ajax({ 
    url: window.location.origin + 'effortloading/approveraction', 
    type: "POST", 
    data: postData, 
    success: function (data, textStatus, jqXHR) { 
    //data: return data from server 
    console.log(':: << Success data >> :: ' + data + ':: textStatus ::' + textStatus + ':: persistResponse ::' + data.persistResponse); 

    }, 
    error: function (jqXHR, textStatus, errorThrown) { 
    //console.log(':: << failed data >> :: '+data); 
    console.log(':: << failed data >> :: ' + jqXHR + ':: textStatus ::' + textStatus + ':' + errorThrown); 
    //if fails  
    } 
}); 
+0

我嘗試的第一個方法。但它仍然顯示404錯誤。 – Shanmugapriya

+0

第二種方法是讓喜歡「令牌語法錯誤‘‘effortloading/approveraction’’,預計將在令牌之後」 – Shanmugapriya

+0

它看起來像','是URL後丟失的錯誤。您是否按照'window.location.origin + 'effortloading/approveraction','?如果可能,請發佈瀏覽器控制檯錯誤消息。在我的控制檯 –