每当我创建jQuery.ajax
请求时,它在URL使用HTTP协议时都可以正常工作。但是,当我向HTTP服务器发送相同的请求时,它的发送没有标头[HTTP_X_REQUESTED_WITH: XMLHttpRequest
]。因此,服务器无法知道这是一个AJAX请求!当使用HTTPS时,jQuery.ajax不会发送正确的ajax标头
我已经试过:
- 开关$阿贾克斯,.post的$,$不用彷徨
- 强制使用
beforeSend
- 设置
CrossDomain:true
注头:有没有跨域问题,请求是有效和处理的,但不是AJAX。
如果当前URL是http,但所请求的URL位于同一个域但使用HTTPS,则会发生此问题。 http://example.com/home 将使用AJAX POST张贴到
这** **是一个跨域问题AFAIK。 [SOP](http://en.wikipedia.org/wiki/Same_origin_policy)要求请求位于同一个协议和端口上(如使用HTTP - > HTTPS和80 - > 443)。看起来(没有更多信息),jQuery *在幕后制作JSONP请求,忽略额外的HTTP标头。 – Matt 2012-03-14 13:46:49
你的意思是当你在HTTP服务器上并向HTTPS服务器发出ajax请求吗? – 2012-03-14 13:52:57
@MikeGleasonjrCouturier yest,情况就是这样。 – mjalajel 2012-03-14 13:59:37