如何从HTML发送DELETE请求?

时间:2016-09-05 05:21:25

标签: java amazon-s3 salesforce

我正在为Cloudfront / S3前端存储桶创建一个HTML界面,我希望能够通过该界面删除其中的对象。我可以编写GET和POST请求,以便列出并查看存储桶中的对象,但我不知道如何编写删除请求。

private String buildURL(String endpoint) {
    String secret    = 'some_secret';
    Datetime dt      = Datetime.now();
    Long longTime    = dt.getTime();
    Long expiryLong  = (longTime / 1000) + 10;
    String url       = 'https://' + cf + endpoint +
                       '?Prefix=' + user_id;
    String expiry    = String.valueOf(expiryLong);
    String policy    = policy(url, expiry);
    String policyEnc = EncodingUtil.base64Encode(Blob.valueOf(policy));
    String rPolicy   = cfReplace(policyEnc);
    Blob mac         = Crypto.generateMac('HMACSHA1',
                                          Blob.valueOf(rPolicy),
                                          Blob.valueOf(secret));
    String signature = cfReplace(EncodingUtil.base64Encode(mac));

    return 'https://' + cf + endpoint +
           '?Prefix=' + user_id + '&Policy=' + policyEnc +
           '&Signature=' + signature + '&Key-Pair-Id=' + keyPairId;
}

如果这是我用来生成网址以查看对象的方法,我该如何将其更改为删除请求并将其附加到<a href...代码?

2 个答案:

答案 0 :(得分:1)

你可以使用ajax。

<a href="test.php" onclick="sendDelete(event)">test</a>
<script>
    function sendDelete(event){
        event.preventDefault();
        xhttp.open("DELETE", this.href, true);
        xhttp.send();
    }
</script>

答案 1 :(得分:1)

遗憾的是,可能无法将其附加到href对象。表单中的元素只能执行POST and GET only.。您可能必须手动构建标头的删除方法(使用服务器端的表单提交)或使用HTTP库来完成操作。