绕过跨域问题

时间:2013-04-22 01:18:08

标签: html jquery jquery-mobile

我使用Html,css和Jquery Mobile框架创建ios应用程序并将其连接到SOAP xml Web服务。由于我的Web服务在另一个PC上,我有跨域问题,但已经将应用程序连接到soap Web服务但由于跨域问题而未获得返回(xml格式)。

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

2 个答案:

答案 0 :(得分:1)

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


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

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

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

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

答案 1 :(得分:1)

This是一个简单的PHP代理的一个很好的例子,它允许你返回XML。

关键是它可以在您的服务器上完成,也可以通过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
    }
});