【问题标题】:WinHttpRequest equivalent in JavascriptJavascript 中的 WinHttpRequest 等效项
【发布时间】:2012-12-04 02:02:54
【问题描述】:

我希望使用我网页中的 API,目前有一个可以在 VBA 中工作的 VB 示例,并希望可以在 Javascript 中创建等效方法

Set http = CreateObject("WinHttp.WinHttpRequest.5.1")
http.Open "POST", "https://api.net.nz/Service.svc", False
http.setProxy 2, "http://proxynz", ""
http.Option(4) = intSslErrorIgnoreFlags
http.Option(6) = False
http.setRequestHeader "Content-Type", "text/xml; charset=utf-8"
http.setRequestHeader "SOAPAction", "urn:WebServices/ISaleService/CreateSale"
http.send (strXML)
Post = http.responsetext

我一直在使用的代码在这里,我认为问题在于 VB 代码中的 http.setProxy 行。

$.ajax({
    type: "POST",
    url: "https://api.net.nz/Service.svc",
    dataType: 'xml',
    contentType: "text/xml; charset=\"utf-8\"",
    beforeSend: function (xhr) {
        xhr.setRequestHeader('SOAPAction', 'urn:WebServices/ISaleService/CreateSale');
    },
    data: strXML,
    async: false,
    success: function (data) {alert(data);},
    error: function (xhr, status, error) {$('#results').html(error);alert(error)}
});

使用上面的代码,我收到一条错误消息

错误:NETWORK_ERR:XMLHttpRequest 异常 101

更新 仍在为此寻找解决方案。我希望有人知道如何为 $.ajax 请求引用代理。

【问题讨论】:

  • 我认为这是一个错字,但您在两个代码示例中使用了不同的 URL - 在 VBA 示例 https://api.net.nz/Service.svc 和 JS 示例中 https://api.net.nz/SaleService.svc
  • 是的,我从每个 sn-p 中删除了数据,我再次检查了我的代码,它们都是相同的 URL。我还添加了从我的 JS 代码中得到的错误消息

标签: jquery ajax api vba winhttprequest


【解决方案1】:

这是因为浏览器中为ajax实现的SOP。

这是参考:

jQuery.ajax fails when url is from different server

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-28
    • 1970-01-01
    • 2015-01-22
    • 2021-06-11
    • 1970-01-01
    • 1970-01-01
    • 2013-08-30
    • 2021-05-28
    相关资源
    最近更新 更多