我有一個JQuery Mobile應用程序。這個應用程序需要打一個遠程Web服務。當我從本地文件系統運行應用程序時,該應用程序加載正常。但是,當我點擊一個按鈕時,我嘗試與Web服務交互。當我試圖打的web服務,我看到上面寫着控制檯的錯誤:從PhoneGap中的JQuery Mobile應用程序打到Web服務
XMLHttpRequest cannot load https://www.mydomain.com/myService/myAction. Origin null is not allowed by Access-Control-Allow-Origin
我試着打下面的代碼服務:
var vm = getParameters();
$.ajax({
url: https://www.mydomain.com/myService/myAction,
type: "POST",
data: JSON.stringify(vm),
contentType: "application/json",
success: action_Succeeded,
error: action_Failed
});
我在做什麼錯?我在這篇文章中嘗試了一切,沒有任何運氣:XmlHttpRequest error: Origin null is not allowed by Access-Control-Allow-Origin。
我的應用程序在我通過Visual Studio運行時工作。我的直覺是,它在當時的web服務器環境中運行。不過,我想通過PhoneGap部署這個。因此,在Web服務器環境中運行是不可能的。這就是爲什麼我想通過我的本地文件系統運行它,一切正常,我應該很好。我究竟做錯了什麼?
非常感謝!
非常感謝您的回覆。我仍然有點困惑。沒有你上面提到的東西,該應用程序在我的開發環境中工作。當我將它推送到我在Web上使用的測試環境中時,它就可以工作。然而,當我有本地文件嘗試擊中測試環境中託管的Web服務時,它不起作用。你能解釋爲什麼嗎?非常感謝。 –
你的開發/測試環境是什麼?是從桌面瀏覽器運行你的頁面? 「本地文件」是什麼意思? 當您的頁面位於phonegap容器內(在Android,iOS等應用程序中運行它時),需要上述配置。 – chrisben
在我的應用程序的第一頁上,我點擊了一個Web服務。這在我的DEV env中運行良好,它在Visual Studio啓動的DEV Web服務器上運行。然後我將整個項目推廣到我們的TESTING Web服務器(一個IIS 7)中運行。該應用程序在那裏工作罰款。然後,當我嘗試通過電話模擬器打開服務時,它不起作用。由於PhoneGap作爲本地文件加載(http://jquerymobile.com/demos/1.1.0/docs/pages/phonegap.html),因此我決定在Chrome中從本地計算機打開index.html文件。我確保它指向了TEST服務網址。但是,我仍然遇到提及的錯誤。 –