为了在具有许多参数的表单中发布AJAX表单,我使用一种解决方案:创建一个iframe,通过POST将表单发布到其中,然后访问iframe的内容。具体来说,我正在访问这样的内容:
iframe
$("some_iframe_id").get(0).contentWindow.document
我对其进行了测试,并且效果良好。
在某些页面上,我开始出现“访问被拒绝”错误。据我所知,如果iframe是从同一域提供的,则不应发生这种情况。
我很确定它以前可以正常工作。有人知道吗?
如果我不够清楚:我要发布到 同一域 。因此,这不是跨域请求。我仅在IE上进行测试。
PS我不能使用简单的ajax POST查询(不要问…)
自己解决!
问题是,即使发送了正确的响应(已通过Fiddler验证),它也使用HTTP 500错误代码(而不是200)发送。
事实证明,如果发送的响应带有错误代码,则IE会用iframe从磁盘(res://ieframe.dll/http_500.htm)加载的错误消息替换的内容,这会导致跨域访问被拒绝错误。
res://ieframe.dll/http_500.htm