我使用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