2

私は自分の Web ページから 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 リクエストのプロキシを参照する方法を誰かが知っていることを願っています。

4

1 に答える 1

1

これは、ブラウザに ajax 用の SOP が実装されているためです。

参照は次のとおりです。

URLが別のサーバーからのものである場合、jQuery.ajaxは失敗します

于 2012-12-13T05:25:10.770 に答える