2

iOS開発にPhoneGapを使用しています。PhoneGapのSOAPWebサービスを使用してMagentoAPIを呼び出そうとしています。私のシナリオは、ユーザー名とapikeyをWebサービスに送信したいというものです。jQuery-Ajaxとjavascriptの助けを借りてクライアントになっているので、データをWebサービスに送信しようとしましたが、失敗しました。

Jquery-Ajaxを試してみると、エラーメッセージとしてXML解析エラー状態「0」が表示されました(クロスドメインの問題)。Javascriptでは、応答を正しく取得できますが、ユーザー名とapikeyをWebサービスに送信する方法がわかりません。使用したスクリプトコードは次のとおりです。

<script type="text/javascript">
    // Create the XHR object.

  function createCORSRequest(method, url) {
    var xhr = new XMLHttpRequest();
    if ("withCredentials" in xhr) {
       // XHR for Chrome/Firefox/Opera/Safari.
       xhr.open(method, url, true);
    } else if (typeof XDomainRequest != "undefined") {
      // XDomainRequest for IE.
         xhr = new XDomainRequest();
         xhr.open(method, url);
      } else {
     // CORS not supported.
        xhr = null;
   }return xhr;

// Make the actual CORS request.

function makeCorsRequest() {
   // All HTML5 Rocks properties support CORS.
   var url = 'my WSDL link for magento api';
   var xhr = createCORSRequest('GET', url);
   if (!xhr) {
      alert('CORS not supported');
   return;}
   // Response handlers.
   xhr.onload = function() {
   var text = xhr.responseText;
      alert('Response from CORS request to ' + url);
   };
   xhr.onerror = function() {
      alert('Woops, there was an error making the request.');
   };
  xhr.send();
}
</script>

ここでは、ユーザー名とapikeyをこのSoapWebサービスに送信する方法がわかりません。

誰かが私を提案できますか

  • ユーザー名とapikeyをsoapWebサービスに送信する方法は?
  • クライアント側のプログラミングを使用してsoapWebサービスにデータを送信する別の方法はありますか?
4

1 に答える 1

0

jquery のクロスドメイン問題を避ける必要はないと思います。

1.単純な「jsonp」が質問の解決に役立ちます。2.サーバー側でレスポンスの先頭を変更することができます。以下の私のC#コードを参照してください:

HttpContext.Current.Response.AppendHeader("Access-Control-Allow-Origin", "*");
于 2013-03-01T06:57:03.580 に答える