2

我正在使用 PhoneGap 进行 iOS 开发。我正在尝试使用PhoneGap 中的 SOAP Web 服务调用 Magento API 。我的场景是我想将用户名和 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 发送到这个 Soap Web 服务。

任何人都可以建议我

  • 如何将用户名和 apikey 发送到肥皂网络服务?
  • 有没有其他方法可以使用客户端编程将数据发送到肥皂网络服务?
4

1 回答 1

0

我认为您无需避免jquery的跨域问题。

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

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