Ajax url参数问题

时间:2015-06-10 04:43:06

标签: jquery ajax jsp spring-mvc

当我执行 Ajax 请求时,对于下面提到的网址,它会将我提到的网址值与网页网址的路径名连接在一起

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

我知道它与应用程序的上下文路径连接在一起。例如,如果我的应用程序上下文路径是 localhost:8080 / SpringMVCPractice /和我执行Ajax请求的页面是

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

当我通过点击锚标记执行ajax请求时,所需的网址是

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

为什么不采用localhost:8080/SpringMVCPractice/createtask/110

有什么建议吗?我对Ajax比较陌生。

1 个答案:

答案 0 :(得分:3)

您可以使用:

${pageContext.request.contextPath}

将网址指定为,

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