Iis 上传到另一个域会产生HTTP代码405

Iis 上传到另一个域会产生HTTP代码405,iis,file-upload,http-headers,cross-domain,plupload,Iis,File Upload,Http Headers,Cross Domain,Plupload,我正在尝试使用plupload将一个文件(可能很大)从一台服务器的网站上载到另一台服务器的后端。让我们说: domain 1 = http://www.websitedomain.com/uploadform domain 2 = http://www.backenddomain.com/uploadhandler 尝试上载时,我发送以下邮件: OPTIONS /main/uploadnetwork.php HTTP/1.1 Host: backenddomain.com Connection

我正在尝试使用plupload将一个文件(可能很大)从一台服务器的网站上载到另一台服务器的后端。让我们说:

domain 1 = http://www.websitedomain.com/uploadform
domain 2 = http://www.backenddomain.com/uploadhandler
尝试上载时,我发送以下邮件:

OPTIONS /main/uploadnetwork.php HTTP/1.1
Host: backenddomain.com
Connection: keep-alive
Access-Control-Request-Method: POST
Origin: http://www.websitedomain.com
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.4 (KHTML, like Gecko) Chrome/22.0.1229.79 Safari/537.4
Access-Control-Request-Headers: origin, content-type
Accept: */*
Referer: http://www.websitedomain.com/uploadform
Accept-Encoding: gzip,deflate,sdch
Accept-Language: nl-NL,nl;q=0.8,en-US;q=0.6,en;q=0.4
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
DNT: 1
但当我尝试启动上载时,服务器返回以下内容:

HTTP/1.1 405 Method Not Allowed
Allow: GET, HEAD, OPTIONS, TRACE
Content-Type: text/html
Server: Microsoft-IIS/7.5
X-Powered-By: ASP.NET
X-Powered-By-Plesk: PleskWin
Date: Mon, 01 Oct 2012 12:41:57 GMT
Content-Length: 999
在做了一些研究之后,我发现浏览器这样做是为了检查服务器是否会接受预期的消息。看起来我的服务器不想接受一个简单的POST呼叫,即使我一直在使用POST

Google Chrome控制台出现以下错误:

XMLHttpRequest cannot load http://www.backenddomain.com/uploadhandler. Origin http://www.websitedomain.com is not allowed by Access-Control-Allow-Origin.
有人知道如何阻止浏览器检查,或者我如何告诉我的服务器只接受帖子吗?

你似乎面临着一个问题

在某些浏览器上添加特殊标题应有帮助:

对这个问题的回答也可能有帮助:


您还应该检查跨域标记:

re:“添加一个特殊的头应该对某些浏览器有帮助”,事实上CORS适用于所有支持HTML5 plupload插件的浏览器,甚至包括IE10。如果你愿意,可以说这是一个巧合,但是似乎没有一个供应商仅仅实现了上传支持而没有添加CORS。我发现解决方案非常简单。接收服务器不知道发件人,也不接受。添加
Access Control Allow Origin
标题修复了该问题!