在DNN中,当我尝试在执行表单提交代码后通过javascript代码重定向获取相同的页面

时间:2018-03-28 07:29:51

标签: javascript html .net dotnetnuke

这是我提交表单的代码,当我点击按钮执行Checkout() function

function postURL(url)   {
    var form = $('<form action="' + url + '" method="post">' +
        "<input type='hidden' name='CheckedData' value='" + JSON.stringify(CheckedArray) + "'/>" +
        '<input type="hidden" name="URL" value="CQLandingPage" />' +
        '</form>');

    $('body').append(form);
    form.submit();  }

function Checkout()   {
    var CheckOutUrl = "https://www.facebook.com/";
    postURL(CheckOutUrl);

}

我想在CheckOutUrl上重定向我的网页,但在这种情况下,它会重定向到DNN中的同一个请求的网页 我已将此代码应用于模块的页脚 设置&gt;提前设置特定模块

我有两个不同的域,从请求到响应,并且已经在html中有一个表单

1 个答案:

答案 0 :(得分:1)

Mitchel Sellers有一篇关于此事的博文:

  

https://mitchelsellers.com/blogs/2007/04/03/allowing-html-form-submissions-from-dnn

简短版本是已经页面上的html表单元素。添加自己的表单将与此冲突。但是,你可以使用现有的表单,而只是给你的“新”表单一个按钮或按钮类型的输入元素,其中onClick使用javascript在提交之前更改现有表单的操作:

<button onClick="this.form.action='YourUrlHere';this.form.submit();">...</button>

这样做的缺点是页面上的所有其他输入都将提交(您正在提交整个表单)。只要没有冲突的输入名称,这实际上不应该破坏任何东西;请注意,它可能会产生安全或隐私问题。