javascript - http请求和JavaScript

标签 javascript vba excel httprequest

我有一个关于 excel VBA HTTP 请求和 JavaScript 的问题。我想通过“POST”在内部网站上进行搜索,但提交按钮似乎运行 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 和替换括号。

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

最佳答案

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

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

如果您想在不打开 Web 浏览器的情况下从 Excel 本身获取/XHR,则可以使用该 VBA。

关于javascript - http请求和JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48453950/

相关文章:

javascript - 尝试转换为日期时出现 RangeError Invalid Date

javascript - JavaScript 中的空终止符

javascript - 向 div 添加输入

vba - 使用vba从带有中文字符的文本文件中提取文本

excel - 具有多个条件的四个日期的平均值

excel - 删除重复项并保留最上面的值

Javascript 变量在不应该为 true 时变为 true

excel - 使用数组并在 vba 中使用以下代码查找多个字符串?

excel - “User-defined type not defined”,不突出显示VBE中的代码

excel - 突出显示值前后有空格的单元格