0

Jquery を使用して SOAP リクエストを作成しています。石鹸のリクエストには、次の封筒が必要です。

POST /netforumaiatest2/xweb/secure/netforumxml.asmx HTTP/1.1
Host: amstest.aia.org
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://www.avectra.com/2005/Authenticate"

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <Authenticate xmlns="http://www.avectra.com/2005/">
      <userName>string</userName>
      <password>string</password>
    </Authenticate>
  </soap:Body>
</soap:Envelope>

jqueryでコードを書きました

var soapMessage='<?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><Authenticate xmlns="http://www.avectra.com/2005/"><userName>user</userName><password>pass</password></Authenticate></soap:Body></soap:Envelope>';

    $.ajax({
    url: productServiceUrl,
    type: "POST",
    dataType: "xml",
    data: soapMessage,
    complete: endSaveProduct,
    contentType: "text/xml; charset=\"utf-8\""
           });

しかし、endSaveProduct では、私は取得してstatus = errorいます。送信しているデータを確認するにはどうすればよいですか$.ajax call。私を助けてください。

4

4 に答える 4

1

オプションを使用してbeforeSend、データをコンソール ログに記録できます。 beforeSend: function(data) {console.log(data);}

于 2012-07-19T09:39:46.160 に答える
1

これを別の方法で行うことをお勧めします。PHP ファイル (または aspx) への ajax 呼び出しを行い、そこで SOAP 呼び出しを行います。javascript でできることと比較して、これらの言語で SOAP を使用すると、はるかに多くのことができます。

PHP を使用することにした場合は、しばらく前にこの素敵なクラス オーバーライドを見つけました。

class SoapClientDebug extends SoapClient {
    public function __doRequest($request, $location, $action, $version) {
        print_r($request);
        return parent::__doRequest($request, $location, $action, $version);
    }
}

そして単に変更します:

$client = new SoapClient('foo.wsdl');

$client = new SoapClientDebug('foo.wsdl');
于 2012-07-19T09:40:37.017 に答える
0

Fiddlerを使用して、リクエストとレスポンスを確認します。

于 2012-07-19T09:40:15.543 に答える
0

ここで、私が必要としたもの。ここで行われる HTTPRequest の応答を出力したいと思います。

function endSaveProduct(xmlHttpRequest, status)
            {
              $(xmlHttpRequest.responseXML)
                {
                    alert(xmlHttpRequest.responseText);

エラーは、soap リクエスト ヘッダーにアクションを追加することで解決されます

$.ajax({
                       url: productServiceUrl,
                       type: "POST",
                       beforeSend: function (xhr){
                       xhr.setRequestHeader("SOAPAction", "URL/Authenticate");
                       //alert("in before send");
                       },
                       dataType: "xml",
                       data: soapMessage,
                       complete: endSaveProduct,
                       contentType: "text/xml; charset=\"utf-8\""
                       }).done(function () {alert("calling Authenticate");})
                .fail( function() {alert("fail");});
于 2012-07-20T05:50:23.497 に答える