0

我使用 Html、css 和 Jquery Mobile 框架创建了一个 ios 应用程序,并将其连接到 SOAP xml Web 服务。由于我的网络服务在另一台电脑上,我有跨域问题,但已经将应用程序连接到肥皂网络服务,但由于跨域问题而没有得到返回(xml 格式)。

我的问题是,有什么办法可以绕过这个问题吗?允许得到回报?或如何将 XML 返回转换为 Json 以使其可接受并在 Html 中使用 jquery Ajax 获取返回。感谢那些会帮助我的人。

4

2 回答 2

1

一种解决方案可能是在您的网络 PC 上安装一个代理,该代理可以访问 SOAP,然后透明地传输它。然后您的应用程序认为它来自同一台服务器,并且您不再有跨域问题。


编辑:(我会发表评论,但格式不一样)

这正是重点,您仍然使用$.ajax但您将请求发送到您的 Web 服务器,服务器传输请求,获取响应并将响应传输回客户端:

         request                         request
client ----------->        proxy       ----------> web service
(HTML) <----------- (your web server)  <---------- (anywhere)
         response                        response

重要提示:注意 Web 服务识别客户端的方式,因为它会看到来自同一 IP(您的 Web 服务器)的请求

于 2013-04-22T01:22:47.023 回答
1

是允许您返回 XML 的简单 PHP 代理的一个很好的示例。

关键是它必须在您的服务器上完成,或者通过YQL等服务完成。没有秘密松鼠方式可以让您在客户端执行此操作。


例如,您的 AJAX 调用变为:

$.ajax({
    url: 'php/ba-simple-proxy.php?url=http://remote.server/service.name',
    type: 'GET',
    dataType: "json",
    beforeSend: function(jqXHR, settings) {
        //Show a loading image here
    },
    success: function(json) {
        //process data here
    },
    error: function(jqXHR, textStatus, errorThrown) {
        //Show an error message here
    }
});
于 2013-04-22T01:29:45.930 回答