我使用Html,css和Jquery Mobile框架创建ios应用程序,并将其连接到SOAP xml Web服务。由于我的Web服务位于另一台PC上,因此我遇到了跨域问题,但已将应用程序连接到soap web服务,但由于跨域问题而无法获取返回(xml格式)。绕过跨域问题
我的问题是,有没有办法绕过这个问题?允许获得回报? 或如何将XML返回转换为Json为可接受的,并在Html中使用jQuery Ajax获得返回结果。感谢那些会帮助我的人。
我使用Html,css和Jquery Mobile框架创建ios应用程序,并将其连接到SOAP xml Web服务。由于我的Web服务位于另一台PC上,因此我遇到了跨域问题,但已将应用程序连接到soap web服务,但由于跨域问题而无法获取返回(xml格式)。绕过跨域问题
我的问题是,有没有办法绕过这个问题?允许获得回报? 或如何将XML返回转换为Json为可接受的,并在Html中使用jQuery Ajax获得返回结果。感谢那些会帮助我的人。
一个解决方案可能是在访问SOAP然后透明传输它的Web PC上安装代理。然后你的应用程序认为它来自同一台服务器,你不再有跨域问题。
编辑:(我会发表评论,但该格式是不一样的)
这也正是这一点,你还是用$.ajax
但你发送请求到Web服务器,该服务器传送请求,得到响应并发送响应返回给客户端:
request request
client -----------> proxy ----------> web service
(HTML) <----------- (your web server) <---------- (anywhere)
response response
重要:小心与Web服务识别客户端的方式,因为它会看到请求来自相同的IP(您的Web服务器)
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
}
});
如何使用Html中的sir> im现在使用Html – 2013-04-22 01:44:11
好吧,您说您正在使用jQuery Mobile,并且可能使用'$ .get'或'$ .ajax'来查询您的Web服务。重点在于,您必须将您的$ .ajax调用指向与HTML相同的服务器上的代理,然后该代理将关闭并查询Web服务。上面链接的代理非常简单,并且使用'?url = http:// other.server/service'参数。 – Juffy 2013-04-22 02:06:29
Im使用$ .ajax连接到Web服务sir .. – 2013-04-22 02:23:49
如何做到这一点?先生。 – 2013-04-22 01:43:55