Wykonuję żądania z różnych domen za pośrednictwem jQuery's $.ajax
, aby uzyskać dostęp do API RESTful PHP.
W tym celu mam ustawić następujące nagłówki w PHP:
header("HTTP/1.1 $code $status");
header('Content-type: application/json');
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: GET, POST, PUT');
Korzystanie typy GET
i POST
działa bez problemów. Jednak gdy wykonuję wywołanie ajaxowe PUT
, Firefox całkowicie się nie udaje i pokazuje OPTIONS api.php
na karcie sieciowej Firebug.
W Chrome to samo dzieje się jako pierwsze (OPTION
żądanie kończy się niepowodzeniem z komunikatem Method PUT is not allowed by Access-Control-Allow-Methods.
), ale Chrome uzupełnia aktualne żądanie PUT
, które faktycznie działa.
Jaki jest powód takiego zachowania?