【问题标题】:httpRequest and JavaScripthttpRequest 和 JavaScript
【发布时间】:2018-01-26 00:09:28
【问题描述】:

我有一个关于 excel VBA HTTP 请求和 JavaScript 的问题。我想通过“POST”在 Intranet 网站上进行搜索,但提交按钮似乎运行 JavaScript 来重新加载网站,但我不明白如何。

Public Function XmlHttpTutorial()

Dim xmlhttp As New MSXML2.XMLHTTP60
Set xmlhttp = CreateObject("MSXML2.serverXMLHTTP")
Dim HTMLDoc As New HTMLDocument

Dim myurl As String

myurl = "http://www.website.de"

xmlhttp.Open "POST", myurl, False
xmlhttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
xmlhttp.setRequestHeader "User-Agent", "Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0)1"
xmlhttp.setRequestHeader "Cookie", "serverTimeOffset=-3600149; browserTimeZone=-60;"

xmlhttp.Send ("var1=variable&var2=variable&var3=variable")


Debug.Print xmlhttp.responseText

End Function

这是按钮本身

<input type="submit" name="button" tabindex="8" value="Find" onclick="closeWindow();uppercaseForm( this.form );" class="btn-small">

"closeWindow" 只是关闭窗口,"uppercaseForm" 只是把所有输入大写

这是标题

<form name="arrivalQueryForm" method="post" action="/opslink/arrivalQuery.do" onsubmit="setWindowId(this, 'windowId');">

setWindowID 只获取 window.name 并替换括号。

我不知道如何找回正确的网站,因为到目前为止似乎没有任何效果。

【问题讨论】:

    标签: javascript vba excel httprequest


    【解决方案1】:

    据我所知,VBA 与 HTML 无关。 XHR 被嵌入到 HTML 表单对象中(注意 method=post 属性)。该 onsubmit 与 HTML 表单一起被烘焙。

    我建议您不要使用 HTML 表单元素并在 JavaScript 中手动编写 XHR 脚本,这样您就可以通过 button 元素上的 .click 事件了解该机制的工作原理。

    如果您想从 Excel 本身中获取/XHR,而无需打开 Web 浏览器,则可以使用该 VBA。

    【讨论】:

    • 这就是我尝试通过 XHR 从 Excel 中获取数据的内容,但我得到的前一页似乎与我尝试访问的网站的 Javascript 部分有关。
    猜你喜欢
    • 2012-05-31
    • 2015-11-29
    • 2014-04-15
    • 1970-01-01
    • 1970-01-01
    • 2016-04-20
    • 2010-10-09
    • 2013-10-01
    • 1970-01-01
    相关资源
    最近更新 更多