VBScript从href链接调用POST

时间:2014-05-30 11:10:44

标签: post vbscript asp-classic msxml serverxmlhttp

我们的办公室团队使用VBScript维护和开发经典ASP应用程序

我们遇到了一项涉及创建链接的技术任务。单击链接后,我们希望我们的ASP页面调用POST。

应该通过ASP中的链接间接调用POST。

这是ASP页面中的VBScript代码和链接,它调用最终将调用POST的VBSCript子例程:

 <%dim whereFrom
 whereFrom = "RevSummary"
 dim critiqueID
 critiqueID = 389
 dim orignalCritiqueID
 orignalCritiqueID = 249
 %>


 <a href="#" onclick="<%=vbscript:showCritiqueDetailsInvocation( whereFrom, critiqueID, orignalCritiqueID )%>" class="TenPtList" target="_blank">
                            <font color="blue">
                               Critique Details
                            </font>
                            </a>

 <%
 Sub ShowCritiqueDetails(WhereFromArg, CritiqueIDArg, OrignalCritiqueIDArg )
dim DataToSend : DataToSend = "WhereFrom=" + WhereFromArg + "&CritID=" + CritiqueIDArg + "&OriginalCritID=" + OrignalCritiqueIDArg
dim servXmlHttp
dim urlOfInterest : urlOfInterest = Application("RAMSREVURL") + "CritiqueDetailsPopup.asp"
set servXmlHttp = server.Createobject("MSXML2.ServerXMLHTTP")
servXmlHttp.Open "POST", urlOfInterest ,false
servXmlHttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
servXmlHttp.send DataToSend
Set servXmlHttp = nothing
End Sub
 %>

最终期望的要求是我们想要调用POST,然后我们想要导航到名为CritiqueDetailsPopup.asp的页面

上述方法会不会?另外,上述方法是一种很好的编程习惯吗?

2 个答案:

答案 0 :(得分:0)

如果您想从当前页面触发POST,可以使用以下内容;

  <a href="<%= urlOfInterest %>" onclick="SubmitLink(this, 'POST')" class="TenPtList" target="_blank">
    <font color="blue">Critique Details</font>
  </a>

  <form id="form1">
    <input type="hidden" name="value1" value="Hello World" />
  </form>

  <script type="text/vbscript">
    Function SubmitLink(Method)
      'Get reference to the object that triggered the event
      Dim Obj
      Set Obj = Window.Event.srcElement
      'Pass Method (GET or POST) and the URL to send data to.
      Dim Form
      Set Form = Document.getElementById("form1")
      Form.Method = Method
      'Pull URL from the Href attribute
      Form.Action = Obj.Location.Href
      Call Form.Submit()
      'Return false
      SubmitLink = False
    End Function
  </script>
</body>

由于现在浏览器对VBScript的支持有限(即使微软不使用它),使用JavaScript也可以轻松实现此代码;

  <a href="<%= urlOfInterest %>" onclick="return submitlink(this, 'POST');" class="TenPtList" target="_blank">
    <font color="blue">Critique Details</font>
  </a>

  <form id="form1">
    <input type="hidden" name="value1" value="Hello World" />
  </form>

  <script type="text/vbscript">
    function submitlink(obj, method) {
      //Pass Method (GET or POST) and the URL to send data to.
      var form = Document.getElementById("form1");
      form.method = method;
      //Pull URL from the Href attribute
      form.action = obj.location.Href;
      form.submit();
      return false;
    }
  </script>
</body>

答案 1 :(得分:0)

我的方法

<form  method="post" name="frm">
 <div class="formItem">
    <a href="" class="bidibidi" onclick="frm.submit();">submit</a>
</div>