Заголовок PHP не работает для Access-Control-Allow-Origin

Я использую плагин загрузки файла jQuery от Blueimp для загрузки изображений на сервер. Проблема заключается в том, что отправляющим сервером является admin.example.com , а принимающий сервер, на котором хранятся изображения, находится на www.example.com . Тот же домен, разные поддомены.

Я следил за инструкциями по настройке междоменных загрузок , и все кажется правильным, насколько это возможно, но когда я пытаюсь загрузить изображения, я получаю эту ошибку:

 XMLHttpRequest cannot load http://www.example.com/upload/. Origin http://admin.example.com is not allowed by Access-Control-Allow-Origin. 

У папки для загрузки есть права на чтение и запись.

Я собираюсь опубликовать свой код ниже – если кто-нибудь покажет мне, как исправить это, пожалуйста, дайте мне знать. Я спросил об этом раньше и собирался попробовать другие решения (перемещение iframe и перемещение файла ftp). Ни один из них не будет лучше для моей ситуации, и было бы проще, если бы я мог просто так сделать …

ПОЛУЧАТЕЛЬНЫЙ СЕРВЕР

 index.php <?php header('Access-Control-Allow-Origin: http://admin.example.com'); //I have also tried the * wildcard and get the same response header("Access-Control-Allow-Credentials: true"); header('Access-Control-Allow-Methods: GET, PUT, POST, DELETE, OPTIONS'); header('Access-Control-Max-Age: 1000'); header('Access-Control-Allow-Headers: Content-Type, Content-Range, Content-Disposition, Content-Description'); ?> <?php error_reporting(E_ALL | E_STRICT); require('UploadHandler.php'); $upload_handler = new UploadHandler(); 

ОТПРАВКА СЕРВЕРА

 main.js $(function () { 'use strict'; // Initialize the jQuery File Upload widget: $('#fileupload').fileupload({ // Uncomment the following to send cross-domain cookies: xhrFields: {withCredentials: true}, url: 'http://admin.example.com/upload/', disableImageResize: false, dropZone: $('#dropzone'), imageMaxWidth: 1800, imageMaxHeight: 1800, }); }); 

Снова я попробовал загрузку файла iframe, поэтому, пожалуйста, не предлагайте его, если вы не можете дать мне полный рабочий код …

Я также попробовал header('Access-Control-Allow-Origin: *'); но получить ту же ошибку … Я пытаюсь получить это закончено к выходным, поэтому я буду благодарен за любую помощь, которую я могу получить. 🙂

Благодаря!

EDIT: вот заголовки ответов для неудавшегося запроса OPTIONS

 Allow:OPTIONS, TRACE, GET, HEAD, POST Content-Length:0 Date:Tue, 27 Aug 2013 15:08:29 GMT Public:OPTIONS, TRACE, GET, HEAD, POST Server:Microsoft-IIS/7.5 X-Powered-By:ASP.NET 

Solutions Collecting From Web of "Заголовок PHP не работает для Access-Control-Allow-Origin"

Я использую эти заголовки и свою работу для меня

 header('content-type: application/json; charset=utf-8'); header("access-control-allow-origin: *"); 

Я попытался бы установить это на web.config, поскольку вы работаете на сервере IIS:

https://gist.github.com/corydeppen/3518666

 <system.webServer> <httpProtocol> <customHeaders> <!-- allowing all--> <add name="Access-Control-Allow-Origin" value="*" /> </customHeaders> </httpProtocol> </system.webServer> 

Решением для меня было повторное сохранение файла PHP с использованием кодировки UTF-8 . По-видимому, исходный текстовый файл (который я скопировал на место и перезаписал для быстрого теста) использовал, используя другую фэнки-кодировку.

Не получал никаких решений, поэтому я просто перевел его во временный каталог и использовал FTP, чтобы переместить его в другой домен.