簡體   English   中英

在PHP REST API上,PUT和DELETE請求失敗,但是POST和GET很好

[英]PUT and DELETE requests unsuccessful on PHP REST API, but POST and GET are fine

我已經構建了slimPHP REST API。 這是標題的內容:

header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Credentials: true"); 
header('Access-Control-Allow-Headers: origin, content-type, accept');
header('Access-Control-Allow-Methods: POST, GET, OPTIONS, DELETE, PUT');
header('Access-Control-Max-Age: 86400'); 

但是,當我嘗試跨域PUT或DELETE請求時,我得到的只是(示例域):

XMLHttpRequest cannot load http://www.example.com/api/x.
Origin http://www.example.com is not allowed by Access-Control-Allow-Origin. 

如果將Access-Control-Allow-Origin設置為*,為什么會發生這種情況?

Slim Framework文檔中

不幸的是,現代瀏覽器不提供對HTTP PUT請求的本機支持。 要變通解決此限制,請確保您的HTML表單的method屬性為“ post”,然后將方法覆蓋參數添加到您的HTML表單中,如下所示:

  <form action="/books/1" method="post"> ... other form fields here... <input type="hidden" name="_METHOD" value="PUT"/> <input type="submit" value="Update Book"/> </form> 

如果使用Backbone.js或命令行HTTP客戶端,則還可以通過使用X-HTTP-Method-Override標頭覆蓋HTTP方法。

您可以使用任何需要的請求類型(包括自定義請求(如foo )),但是GET和POST是現代瀏覽器唯一支持的請求類型。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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