Javascript 上传图片-图片中是否有域名-chrome未发送会话id

Javascript 上传图片-图片中是否有域名-chrome未发送会话id,javascript,ajax,google-chrome,cookies,Javascript,Ajax,Google Chrome,Cookies,为了进行测试,我从网上下载了图像,并在chrome中使用valum file upload上传……chrome没有将会话cookie与这些请求头一起发送(我在服务器端看不到这一点/尽管我在开发者工具上看到了这一点)……chrome是否知道这些图像来自不同的域。正在发生的事情…是否有办法让它传递会话id(作为cookie)。IE10中也出现了这种情况,这让我相信它是某种标准。不仅仅是chrome的问题。firefox/safari/opera没有这个问题 上传到本地主机时,这是正常的。只有在使用域

为了进行测试,我从网上下载了图像,并在chrome中使用valum file upload上传……chrome没有将会话cookie与这些请求头一起发送(我在服务器端看不到这一点/尽管我在开发者工具上看到了这一点)……chrome是否知道这些图像来自不同的域。正在发生的事情…是否有办法让它传递会话id(作为cookie)。IE10中也出现了这种情况,这让我相信它是某种标准。不仅仅是chrome的问题。firefox/safari/opera没有这个问题

上传到本地主机时,这是正常的。只有在使用域名上传到其他服务器时,才会出现此问题,从而导致为此服务器创建新会话

更新: 我已经添加了xhr.withCredentials=true仍然没有用。 还将服务器端添加到上载url

res.setHeader 'Access-Control-Allow-Origin', '*'
res.setHeader 'Access-Control-Allow-Credentials', true
我不知道这会有多大帮助,因为我已经发送了上传文件,响应头也不会有多大帮助

基本上,问题是我无法访问服务器端的会话变量,因为会话id/sid cookie没有返回/我无法将一些上载详细信息保存到当前会话中(因为这是一个新会话)

更新:
我试着用颜料在桌面上创建一个图像。即使这样,chrome也不会发送cookies。真的让我发疯了…

首先,为了解决基本问题,这与图像的来源无关。Chrome或其他浏览器不关心从哪里获得图像

很难准确猜测到底发生了什么,如果能看到JSFIDLE或更多的设置说明会有所帮助,但根据我的猜测,您可能会对上载按钮所在的页面和发送文件的目标url使用不同的域(即使对其中一个使用ssl,对另一个使用http也会有所不同)。如果Cookie未设置基本域(yourdomain.com),则即使是不同的子域也不允许传递Cookie

因此,如果子域是问题所在,你知道该怎么做-设置一个基本域,这样你就可以让你的cookie进入任何子域。 如果是http与https,您需要始终使用https(或http),因为您无法在这两者之间切换cookie

如果不是这样,或者如果您使用的是完全不同的域,您可以通过脚本本地访问您的cookie(如果它们没有标记为仅http),并将它们添加到上载请求中。Valum 2.0(不知道v1.0)允许您向请求中添加参数,如下所示:

var uploader = new qq.FileUploader({
        element: document.getElementById('file-uploader'),
        action: '/server-side.upload',
        // additional data to send, name-value pairs
        params: {
            param1: 'value1',
            param2: 'value2'
        }
    });

您无法通过脚本在非页面域的域上设置Cookie,因此对于使用完全不同的域,您唯一的选择是使用请求参数。

在某些情况下,上载程序可能使用Flash进行上载。Flash中存在一个错误,它阻止为这些类型的请求发送Cookie。This将解释您看到的行为。解决方法是传入sessionId,并以不同的方式传输它,例如querystring。

cookies是否与所有其他请求一起发送?是的。使用图像上载(我自己的)wierd google是如何知道的…ie10也是如此。对于我试图上传到服务器时从网上下载的图像…cookies不会让你检查会话cookie的域和路径是否与上传时使用的URL匹配?如果域名不同,我上传的每个图像都应该如此。但对于某些图像,我会检查它发送的cookie/会话被拾取,对于来自internet的cookie/会话被创建。我希望我可以共享url,但这是一个公共论坛..我不想让我的服务器陷入困境..我不想js fiddle是否有帮助..这是一个简单的文件上传到同一域..因为它是一个会话cookie..我t标记为http only..因此我使用params thing将会话传回并进行比较。如果且仅当您能够将其用于JPG图像时,让我们尝试另一种方法,看看大小是否与此有关:取一个不起作用的图像,确保它是JPG,通过图像编辑工具打开它,然后保存它以jpg的形式返回,但需要更多的压缩(您可以将其大小调整为较小的大小以获得相同的效果)。现在检查大小的差异是否会产生差异(可以接受)。可能..可能需要更多的解释如何/什么可能会更好。。