2013-07-08 31 views
5

Ứ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á.

+0

ajax crossdomain? Bạn đã nghe nói về SOP chưa? – Robert

+0

Điều này có hữu ích không? http://stackoverflow.com/questions/13609296/zend-framework-2-ajax-request-from-other-server – Jon

+0

@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

Trả lời

Các vấn đề liên quan