使用webservice调用获取项目

时间:2017-04-10 09:47:19

标签: jquery ajax web-services data-virtualization

我正在尝试使用JQuery中的webservices从Data Virtualization视图中检索值列表。这就是我现在所拥有的,我从alert(xhr.error)获得error。你们中的任何人都可以帮助我解决任何我可能忽视的明显事物吗?非常感谢

 <script src="/jquery-1.11.1.js"></script>
 <script src="/jquery.SPServices-2014.02.min.js"></script>
 <script type="text/javascript" language="javascript">

 $(document).ready(function() {
 $.ajax({
     type: "POST",
     url: "http://xxx/soap11/ValidateSourceCode?wsdl",
 username: "xyz", 
     password: "xyz",
     dataType: "xml",
     data: {},
     processData: false,
     contentType:"text/xml; charset=\"utf-8\"",
     success: function (msg) {
          alert($(msg).text());
          //console.log($(msg).text());
     },
     error: function(xhr, status, error){
              alert(xhr.status);
              alert(xhr.error);

      }
    }); });


  </script>

3 个答案:

答案 0 :(得分:0)

查看调试器中的网络选项卡。由于同源策略,您可能会收到400错误。它基本上意味着您不能向不同于托管应用程序的服务器发出ajax请求。

https://developer.mozilla.org/en-US/docs/Web/Security/Same-origin_policy

答案 1 :(得分:0)

如果您只是从服务方法获取数据,则可以执行“GET”

$.ajax({
    type: "GET",
    url: "http://xxx/soap11/ValidateSourceCode?wsdl",
    data: {},
    contentType:"text/xml; charset=\"utf-8\"",
    success: jqSuccess,
    error: jqError
});

或者您可以尝试使用jquery.soap https://github.com/doedje/jquery.soap/blob/master/README.md

答案 2 :(得分:0)

你在jQuery中得到了一个wsdl(= soap webservice)?你必须使用SoapClient,例如php Soapclient。

再次打电话给你的ajax:

$.ajax({
    type: "GET",
    url: "/api/yourLocalSoapClient.php",
    data: {query:'testApi'},
    contentType:"text/xml; charset=\"utf-8\"",
    success: jqSuccess,
    error: jqError
});

将用户名/密码放入php脚本中,然后使用SoapClient:

http://php.net/manual/fr/class.soapclient.php

您可以尝试使用jQuery soapclient:https://github.com/doedje/jquery.soap

但如果它是公共应用程序,这是禁止的,它将公开您的webservice的用户/密码,使用php,并返回您自己的json。