如何在PhoneGap中使用Magento API Soap Web服务

时间:2013-03-01 05:37:38

标签: javascript magento jquery cordova

使用PhoneGap进行iOS开发。我试图在PhoneGap中拨打Magento API With the SOAP Web services。我的方案是我想将用户名和apikey发送到Webservice。由于它是一个基于jQuery-Ajax和javascript帮助的客户端,我试图将数据发送到Web服务但是失败了。

当我尝试使用Jquery-Ajax时,我得到了一个XML解析错误,将错误消息指定为“0”(Cros Domain问题)。在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发送到这个Soap Web服务。

任何人都可以建议我

  • 如何将用户名和apikey发送到soap web服务?
  • 有没有其他方法可以使用客户端编程将数据发送到soap Web服务?

1 个答案:

答案 0 :(得分:0)

我认为你没有必要避免jquery的跨域问题。

1.简单的'jsonp'将帮助您解决问题。 2.您可以修改服务器端的响应头。 请参考下面的c#代码:

HttpContext.Current.Response.AppendHeader("Access-Control-Allow-Origin", "*");