Tôi có một trang web với REST Api và bây giờ tôi đang tạo một tiện ích mở rộng cho trình duyệt, sẽ thu thập dữ liệu từ một số trang và gửi lại cho REST Api. Bởi vì tôi muốn phần mở rộng của tôi tương thích với cả firefox và chrome, và để dễ bảo trì, tôi sẽ chèn mã thực tế vào trang dưới dạng thẻ tập lệnh, sau đó được thực thi như javascript bình thường. Tôi hiện chỉ đang hoạt động trên phiên bản phần mở rộng của chrome và tôi gặp sự cố:Yêu cầu PATCH trên Chrome Cross-Domain không hoạt động
Khi tôi đang cố gắng gửi dữ liệu đến api (yêu cầu PATCH), chrome sẽ không để tôi nói :
XMLHttpRequest không thể tải http://my.rest/api. Xuất xứ http://website.com không được cho phép bởi Access-Control-Allow-Origin.
Tôi có Access-Control-Allow-Headers, Methods và Origin đều được đặt thành giá trị phù hợp nhưng vẫn không hoạt động. Tuy nhiên, nó hoạt động với các yêu cầu GET. Tôi cũng đã thử POST và PUT yêu cầu nhưng những người không làm việc hoặc.
Dưới đây là tiêu đề của tôi:
Yêu cầu:
OPTIONS /some/api/path HTTP/1.1
Host: my.rest
Connection: keep-alive
Access-Control-Request-Method: PATCH
Origin: http://website.com
User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.116 Safari/537.36
X-FireLogger: 1.1
Access-Control-Request-Headers: accept, x-http-auth-user, x-http-auth-token, origin, content-type
Accept: */*
Referer: http://website.com/index.php
Accept-Encoding: gzip,deflate,sdch
Accept-Language: cs-CZ,cs;q=0.8
đáp ứng:
Access-Control-Allow-Headers:accept, x-http-auth-user, x-http-auth-token, origin, content-type
Access-Control-Allow-Methods:PATCH
Access-Control-Allow-Origin:*
Connection:Keep-Alive
Content-Type:text/html; charset=utf-8
Date:Thu, 04 Jul 2013 10:50:08 GMT
Keep-Alive:timeout=5, max=100
Server:Apache/2.4.2 (Win64) PHP/5.4.3
X-Frame-Options:SAMEORIGIN
X-Powered-By:Nette Framework
Tôi đã cũng cố gắng thiết lập Access-Control-Allow-Origin chính xác cùng một giá trị như xứ tiêu đề, nhưng nó không hoạt động. Furthemore nó có vẻ là làm việc trong Firefox. Tôi có Chrome 27, phiên bản này sẽ được cập nhật.
thử thêm '--disable-web-security' này –
Tôi không phát triển phần mở rộng này cho bản thân mình và tôi không thể hỏi những người muốn sử dụng nó để làm điều này. – hynner
bạn đang sử dụng [jsonp] (http://en.wikipedia.org/wiki/JSONP)? –