[英]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設置為*,為什么會發生這種情況?
不幸的是,現代瀏覽器不提供對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.