【问题标题】:Access Denied on form submit()表单提交()上的访问被拒绝
【发布时间】:2012-10-06 05:50:59
【问题描述】:

我正在使用 jquery 表单插件 (http://jquery.malsup.com/form),但在 IE 8 和 9 上它不起作用。 IE 拒绝访问form.submit(); 作者页面上的示例是好的,我不是。 IE 需要额外配置吗?

$(parent + ' form').ajaxForm({
    success: function(data) {
        $("#cont").html(data);
    },
    beforeSubmit: function(arr, f, o) {
        o.dataType = "html";
    },
    iframeSrc: urlTab['upload']
});

这不是服务器问题,请不要提出请求。没有跨域等常见问题。

【问题讨论】:

  • 表单操作未托管在您的服务器上?然后是同源问题
  • 一切都在同一个服务器、同一个域等上
  • 是的,到处都是标准的 (80)。
  • 你的父母是什么?
  • 另外,您不需要在提交之前指定数据类型。您也可以在函数外指定 dataType

标签: jquery forms internet-explorer


【解决方案1】:

这里是Fiddle。简单的表单提交。它适用于 IE 7、8 和 9。由于 jsFiddle 上不存在 test.html,因此流程转到错误函数。但是 IE 上出现 No access denied 错误。

我正在使用form.submit(); 它工作正常。

我有你的问题

这里有一个链接可以解决你的问题“Access is denied” JavaScript error when trying to access the document object of a programmatically-created (IE-only)

您可以通过添加此代码查看表单插件日志。

$.fn.ajaxSubmit.debug = true;

这里是完整代码

$.fn.ajaxSubmit.debug = true;

$(document).ajaxError(function(ev,xhr,o,err) {
    alert(err);
    if (window.console && window.console.log) console.log(err);
});

$('form').ajaxForm({
    dataType:'html',
    iframe:true,
    iframeSrc : "javascript:'<html><body><p>Hello<\/p><script>do things;<\/script>'",
    success: function(data) {

    },
    beforeSubmit: function(arr, f, o) {

    },
    error: function(responseText){
        alert(responseText.status+'  ::  '+responseText.statusText);
    }
});
$('#submitBtn').click(function(){
    $('form').submit();
});

【讨论】:

  • 该示例也适用于我,但作为更大项目一部分的代码仍然没有,我不知道为什么。
  • @WombaT 查看我编辑的答案。这将适用于您的情况
  • 设置 iframeSrc 没有改变任何东西,仍然无法发送表单。
  • 已解决:表单被 ajax 加载,IE 阻止了它。在更改视图和控制器以加载整个页面的表单后,我可以在 IE 上使用 ajaxForm 而不会出现问题。
  • 很好听。干杯:)
猜你喜欢
  • 1970-01-01
  • 2012-01-01
  • 2012-11-19
  • 1970-01-01
  • 2021-07-15
  • 2019-02-07
  • 1970-01-01
  • 2012-07-15
  • 1970-01-01
相关资源
最近更新 更多