1

私は、JSP と CSS に非常に特有の奇妙な問題を抱えていると思います。私は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 に答える