1

我认为这是一个非常特定于 JSP 和 CSS 的 stange 问题。我正在使用 Spring 和 jquery 将 ajax 请求发布到服务器。在我的 JSP 中,如果我有以下行 -

<button class="btn-icon btn-small btn-grey btn-cross" onClick="delete('${ManagerVO.ContactInfoVO.branchId}');"><span>&#160;</span>Delete</button>

我的代码执行了操作,但最后我得到了 HTTP 405 - Request method 'POST' not supported 错误。现在,如果我将上面的行更改为 -

<input type="button" class="btn-icon btn-small btn-grey btn-cross" onClick="delete('${ManagerVO.ContactInfoVO.branchId}');"><span>&#160;</span>Delete</input>

代码工作得很好。jQuery代码是

function delete(Id) { $.ajax({
                    type: "POST",
                    url: "/XXX/XXX/XXX/delete",
                    data: "Id=" + Id,
                    success: function(errorVO){
                            alert(errorVO.errorText);                                           
                      },
                      error: function(e){
                          alert('Error, Please try later: ' + e);
                    }});}

控制器是 -

@RequestMapping(value = "/delete", method = RequestMethod.POST)
    public @ResponseBody
    ResultVO delete(
            @RequestParam(value = "Id", required = true) String Id,
            Model model) {
        ResultVO resultVO = adminService.XXX(Id);
        return resultVO;
    }

有人可以让我知道如何解决这个问题。我想这更像是一个CSS的东西。firebug 告诉我,crome 应用的默认用户代理 css 是 input type="button"。按钮 CSS 如下 -

.btn-icon
{
    background-repeat: repeat-x;
    color: #FFF;    
    font-weight: bold;
    display: inline-block;  
    text-decoration: none;
    border-width: 1px;
    border-style: solid;
    padding: 0 15px 4px;
    *padding: 0 7px 4px;
    margin: 0;
    text-shadow: 1px 1px 1px rgba(0,0,0,.2);
    -moz-box-shadow: 1px 1px 1px rgba(0,0,0,.25);
    -webkit-box-shadow: 1px 1px 1px rgba(0,0,0,.25);
    -moz-border-radius: 4px;
    -webkit-border-radius: 4px;
    filter: progid:DXImageTransform.Microsoft.Shadow(color=#999999,direction=135,strength=2);
    cursor: pointer;
    position: relative;
}
4

1 回答 1

1

我想知道该input版本是否正在提交表单(所以您看不到 AJAX 错误)。

尝试将onClick两个版本(输入和按钮)的属性更改为:

onClick="delete('${ManagerVO.ContactInfoVO.branchId}'); return false;"

看看会发生什么。

于 2012-10-01T23:06:26.460 回答