首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >来自XMLDom的从API检索XML的请求被阻止。

来自XMLDom的从API检索XML的请求被阻止。
EN

Stack Overflow用户
提问于 2018-06-06 21:04:13
回答 1查看 33关注 0票数 0

我用VBA为Excel2010编写了一个宏,用于从返回XML的API中检索数据。我自愿这样做是为了帮助我的妻子和她的同事做大量的体力劳动。因此,宏用在企业环境中,安全设置不在我的控制范围内,而且我从未在企业环境中工作过,我也不知道这种可能性是什么。

然而,it人员表示,他们愿意提供帮助,但不知道如何修复它。因此,我想知道在座的任何人是否可以指出正确的方向,如何让它在所有PC上工作。

代码如下所示,它可以在我妻子所有同事和我自己的家用电脑上运行。它也可以在一些工作PC上工作,但在一些不能工作的PC上工作。objDoc.Load部件上的代码失败,它显示了我的错误消息:

代码语言:javascript
复制
MsgBox ("There was an error when connecting to the API)

我想知道是否有企业设置或个人Excel设置阻止访问宏中的外部URL。我不会感到惊讶,因为这将是很好的安全性,但我想也应该有一种方法来将API的url列入白名单?

有没有人知道如何解决这个问题?在代码中,在Excel2010设置中,或者在我不知道的任何Office企业设置中?

代码语言:javascript
复制
Dim strUrl as String
Dim objDoc As Object
Set objDoc = CreateObject("MSXML2.DOMDocument")
objDoc.async = False

strUrl = {api URL}

    If objDoc.Load(strUrl) Then
        'it worked!
    Else
        MsgBox ("There was an error when connecting to the API)
        Exit Function
    End If
EN

回答 1

Stack Overflow用户

发布于 2018-06-07 04:57:14

通过缩小误差域来实现方法

显然,使用后期绑定的代码会被执行,但会显示一条错误消息。通常,XML代码包含不可读的字符实体(例如,与符号&)。通过将代码中的完整Else块替换为以下语句,可以缩小错误字段的范围:

代码语言:javascript
复制
  Dim xPE        As Object    ' Set xPE = CreateObject("MSXML2.IXMLDOMParseError")
  Dim strErrText As String
  Set xPE = objDoc.parseError
  With xPE
     strErrText = "Load error " & .ErrorCode & " xml file " & vbCrLf & _
      Replace(.URL, "file:///", "") & vbCrLf & vbCrLf & _
      xPE.reason & _
      "Source Text: " & .srcText & vbCrLf & vbCrLf & _
      "Line No.:    " & .Line & vbCrLf & _
      "Line Pos.: " & .linepos & vbCrLf & _
      "File Pos.:  " & .filepos & vbCrLf & vbCrLf
  End With
  MsgBox strErrText, vbExclamation
  Set xPE = Nothing
  Exit Function

附加提示

如果使用Set objDoc = CreateObject("MSXML2.DOMDocument")objDoc对象设置为内存,通常会得到较旧的版本(3.0),因此在大多数情况下,最好显式使用Set objDoc = CreateObject("MSXML2.DOMDocument.6.0")来获取最新的6.0版本。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50721158

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档