我使用Html,css和Jquery Mobile框架创建ios应用程序并将其连接到SOAP xml Web服务。由于我的Web服务在另一个PC上,我有跨域问题,但已经将应用程序连接到soap Web服务但由于跨域问题而未获得返回(xml格式)。
我的问题是,有什么方法可以绕过这个问题吗?允许获得回报? 或者如何将XML返回到Json转换为可接受的并使用Html中的jquery Ajax获取返回。感谢那些帮助我的人。
答案 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
}
});