[英]How to pass HTTP method to window.open
是否可以在window.open
調用中指定HTTP方法(POST,DELETE,PUT)?
我知道我可以改為進行Ajax調用,並且允許指定HTTP方法,但是在這種情況下,我希望瀏覽器進行“真實”調用(遵循所有重定向,正確的加載響應等)。
我最終使用了隱藏形式來包裝HTTP請求。 該方法專用於我的后端(Rails),因為它使用隱藏的_method
輸入來發布偽PUT或偽DELETE操作。 對於Rails,我還必須添加隱藏的CSFR字段 。 我的原始HTML如下:
<button class="btn action-button btn-danger"
id="delete-object"
data-action-href="<%= object_path(@object) %>"
data-action-method="delete"><i class="icon-trash icon-white"></i>Delete</button>
實現它的CoffeeScript是:
$("button.action-button").each (index, element) ->
$(element).click (eventObject) ->
url = $(this).data("action-href")
httpMethod = $(this).data("action-method")
if httpMethod?
form = $("<form/>",
id: "action-method-temp-form"
action: url
method: "post"
style: "display: none")
form.appendTo $(this)
csfr = $('meta[name="csrf-token"]').attr("content")
$("<input/>",
type: "hidden"
name: "authenticity_token"
value: "#{csfr}").appendTo form
$("<input/>",
type: "hidden"
name: "_method"
value: httpMethod).appendTo form if httpMethod != "post"
form.submit()
else
window.location = url
我了解這並不是我所要問的,但它做同樣的事情。 相比之下,Ajax調用后跟文檔內容替換將無法正確處理重定向和非HTML內容類型響應。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.