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

Я использую плагин jQuery Upload Upload от 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

Ответы

Ответ 1

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

Ответ 2

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

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

Ответ 3

Я попытался бы установить это на 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>

Ответ 4

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