PHP标头不适用于Access-Control-Allow-Origin

Cal*_*leb 14 php iis upload jquery cross-domain

我正在使用BlueimpjQuery File Upload插件将图像上传到服务器.问题是,发送服务器是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.
Run Code Online (Sandbox Code Playgroud)

上传文件夹确实具有读写权限.

我将在下面发布我的代码 - 如果有人可以告诉我如何解决这个问题,请告诉我.之前我曾经问过这个问题,并且会尝试其他一些解决方案(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();
Run Code Online (Sandbox Code Playgroud)

发送服务器

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,
    });
});
Run Code Online (Sandbox Code Playgroud)

我再次尝试上传iframe文件,所以请不要建议,除非你能给我完整的工作代码......

我也试过header('Access-Control-Allow-Origin: *');但得到同样的错误......我试图在周末完成这个,所以我很感激我能得到任何帮助.:)

谢谢!

编辑:这是失败的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
Run Code Online (Sandbox Code Playgroud)

小智 25

我使用这个标题和它为我工作

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