簡體   English   中英

如何將HTTP方法傳遞給window.open

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM