Ứng dụng của tôi (A) cần tải lên tệp bằng AJAX (thư viện Fineuploader) vào tên miền phụ của tôi (B) (máy chủ vật lý khác).Hành động crossdomain ajax trong Zend Framework
giải pháp của tôi là gì: bộ tiêu đề trên B để cho phép yêu cầu từ A. Xem mã này hành động điều khiển:
public function imageAction()
{
$this->_response->setHeader('Access-Control-Allow-Origin', 'http://' . Zend_Registry::get('config')->main_server->path);
$this->_response->setHeader('Access-Control-Allow-Headers', 'Content-Type, Content-Range, Content-Disposition, Content-Description');
$this->_helper->json(array('test'));
}
Sau đó, tôi cố gắng gọi hành động này bằng cách ajax từ A. Yêu cầu có tiêu đề tiếp theo :
Request URL:http://sub.domain.dev/upload/image
Request Method:OPTIONS
Status Code:403 Forbidden
Accept:*/*
Accept-Encoding:gzip,deflate,sdch
Accept-Language:ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4
Access-Control-Request-Headers:access-control-allow-origin, x-mime-type, origin, x-requested-with, cache-control, x-file-name, content-type
Access-Control-Request-Method:POST
Connection:keep-alive
Host:sub.domain.dev
Origin:http://domain.dev
Referer:http://domain.dev
Tôi đã làm gì sai? Cảm ơn.
P.S. Khi tôi gửi yêu cầu với các tiêu đề này:
Accept:application/json, text/javascript, */*; q=0.01
Accept-Encoding:gzip,deflate,sdch
Accept-Language:ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4
Cache-Control:no-cache
Connection:keep-alive
Content-Length:0
Host:sub.domain.dev
Origin:http://domain.dev
Pragma:no-cache
Referer:http://domain.dev
Tho Tôi nghĩ rằng vấn đề trong tiêu đề, được máy chủ vá.
ajax crossdomain? Bạn đã nghe nói về SOP chưa? – Robert
Điều này có hữu ích không? http://stackoverflow.com/questions/13609296/zend-framework-2-ajax-request-from-other-server – Jon
@Robert, chắc chắn, crossdomain ajax. Có lẽ bạn có thể giúp tôi? Có thể của nó. Nhưng tôi có một cuộc chiến với những tiêu đề này. – pltvs