我已按照以下步骤操作:
- 让服务器允许跨域调用(包含所有标头和内容)
- 使用一些跨域调用测试服务器这有效
- 让服务器强制证书 这行得通
- 使用浏览器转到服务器上的文件,选择正确的证书并查看该文件仍然有效
现在我们进入了不错的部分 - 将跨域调用与证书结合<-这不起作用
问题
我正在从浏览器获取证书请求,但是当我选择与使用浏览器时相同的证书时,会进行调用,但会收到 403 Forbidden。
代码
$.ajax({
type: "POST",
xhrFields: {withCredentials: true},
dataType: "xml",
contentType: "text/xml; charset=\"utf-8\"",
url: "https://www.myOtherServer.com/testfile.asp",
});
有任何想法吗?
编辑
和Access-Control-Allow-Credentials: true
已Access-Control-Allow-Origin
正确配置。
附加信息
我开始认为它与内容类型有关。当我将其更改"text/html"
为时出现415
错误,但我确实需要发送 xml,因为它是一个 SOAP 服务器。
响应标头
Access-Control-Allow-Cred... true
Access-Control-Allow-Head... Content-Type, Origin, Man, Messagetype, Soapaction, X-Test-Header
Access-Control-Allow-Meth... GET,POST,HEAD,DELETE,PUT,OPTIONS
Access-Control-Allow-Orig... https://www.mywebsite.com
Access-Control-Max-Age 1800
Cache-Control private
Content-Length 5561
Content-Type text/html; charset=utf-8
Date Wed, 19 Dec 2012 15:06:46 GMT
Server Microsoft-IIS/7.5
X-Powered-By ASP.NET
请求标头
Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding gzip, deflate
Accept-Language nl,en-us;q=0.7,en;q=0.3
Access-Control-Request-He... content-type
Access-Control-Request-Me... POST
Cache-Control no-cache
Connection keep-alive
Host myhoast.com
Origin https://www.mywebsite.com
Pragma no-cache
User-Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:17.0) Gecko/20100101 Firefox/17.0