Baru-baru ini saya mendapat masalah dengan permintaan CORS (Cross Origin Resource Sharing) di Safari, baik OSX dan iOS, sementara permintaan yang sama berfungsi dengan baik di Chrome dan Firefox. Saya mengikuti dokumentasi W3C dan menangani permintaan preflight di sisi server, respons saya seperti:
HTTP/1.0 200 OK
Access-Control-Allow-Origin: http://192.168.1.96:4399
Access-Control-Allow-Methods: POST
Access-Control-Allow-Methods: GET
Access-Control-Allow-Methods: OPTIONS
Access-Control-Allow-Headers: Origin
Access-Control-Allow-Headers: Authorization
Access-Control-Allow-Headers: X-Requested-With
Access-Control-Allow-Headers: Accept
Access-Control-Allow-Headers: Access-Control-Request-Method
Access-Control-Allow-Headers: Access-Control-Request-Headers
Access-Control-Allow-Headers: DNT
Access-Control-Allow-Headers: X-CustomHeader
Access-Control-Allow-Headers: Content-Type
Access-Control-Max-Age: 0
Date: Fri, 25 Nov 2016 08:45:25 GMT
Origin: http://192.168.1.96:4399
Access-Control-Expose-Headers: Origin
Content-Encoding: gzip
Transfer-Encoding: chunked
Respons tersebut berfungsi dengan baik di Chrome, Firefox, dan Browser Android: permintaan POST dikirim tepat setelah permintaan preflight. Namun di Safari, setelah server merespons permintaan pengembalian dana, saya mendapat pesan kesalahan berikut dari konsol:
Failed to load resource: The network connection was lost.
Saya memeriksa respon preflight dari server, tapi ternyata sama seperti di atas... Setelah mencari dan mencoba berkali-kali, saya masih tidak bisa membuatnya berfungsi :-(
Adakah orang yang pernah mengalami masalah ini sebelumnya ?Adakah yang bisa mengetahui kesalahan apa yang telah saya buat?
Terima kasih banyak sebelumnya!