2015-06-10 6 views
0

Когда я сделать запрос Ajax, для URL, указанных ниже, это конкатенации значение URL-адрес, который я уже упоминал вместе с имя пути в URL страницы.Ajax параметр URL вопрос

JSP:

<form:form modelAttribute="createtask" id="create-task-form" name="create-task-form"> 
    <div class="task"> 
     <form:input path="taskName" placeholder="enter task"/> 
     <c:url value="/createtask/${todo.todoId }" var="createtaskUrl" /> 
     <a id="create-task" href="${createtaskUrl }"><span class="glyphicon glyphicon-plus" aria-hidden="true"></span></a> 
    </div> 
</form:form> 

Jquery Ajax вызов:

$("a#create-task").click(function(event){ 
    event.preventDefault(); 
    var todoid = this.href.substring(this.href.lastIndexOf("/")+1,this.href.length); 
    var createTaskForm = $("#create-task-form").serialize(); 
    $.ajax({ 
     type  : "POST", 
     url   : "createtask/"+todoid, 
     data  : createTaskForm, 
     dataType : "text", 
     success  : function(data){ 
      console.log("Created Task successfully.."); 
      $("section#taskviewer").html(data); 
     } 
    }); 
}); 

Я знаю, что сцепляет с пути контекста приложения. Например, если мое приложение контекста путь локальный: 8080/SpringMVCPractice/и страница, в которой я делаю запрос Ajax является

http://localhost:8080/SpringMVCPractice/viewTodo/110 

и когда я делаю AJAX запрос, нажав на якорь тег, URL, он принимает is

http://localhost:8080/SpringMVCPractice/viewTodo/createtask/110 

Почему это не принимается localhost:8080/SpringMVCPractice/createtask/110?

Любое предложение? Я относительно новичок в Ajax.

+0

Я думаю, что его получение добавляется из contextPath, как вы упомянули URL = CreateTask/"+ todoid так было бы только добавить это очень в вашем контекстеPath – ManojP

+0

@ManojP. Почему добавляется? Любая идея – MdKamil

+0

@NishitMaheta Мне нужно добавить ее в форму – MdKamil

ответ

3

Вы можете использовать:

${pageContext.request.contextPath} 

, указав URL, как,

url : "${pageContext.request.contextPath}/createtask/"+todoid, 
+0

Спасибо Brijesh, это работает :). Но я включил элемент ajax в свой viewtodo. jsp. Но то же самое не работает когда я размещаю этот код во внешнем файле javascript.? – MdKamil

+0

@ 402951 это потому, что здесь мы использовали jstl .. который работает только на странице jsp –

+0

Я знаю, что нельзя использовать jstl в .js файле. Есть ли способ достичь того же, поставив Ajax-код в внешний файл javascript, потому что у меня есть все связанные с JS вещи на отдельной странице .js. Любое предложение ? – MdKamil

Смежные вопросы