0
我有一個完全運行的ASP.NET Webform應用程序(.aspx),它使用jQuery AJAX向服務器(CodeBehind)發送和檢索數據。對於我的下一個項目,我需要使用Phonegap重新創建此應用程序,以使其與移動平臺無關。在Phonegap應用程序中將數據從jQuery AJAX發送到ASP.NET
我試圖使用該處理數據庫連接和所有需要的方法,以使應用程序的工作相同代碼隱藏文件。
// File-structure
Application
App_Code
pages
Default.aspx (with codebehind)
phonegapapp
www
- index.html (with jquery AJAX calls)
...
從index.html文件,我試圖讓到Default.aspx.cs連接文件訪問必需的功能:
// phonegapapp/www/index.html
$(function() {
$.ajax({
type: "POST",
...
url: "../../Default.aspx/testFunction",
// tried with only one ../ and going to root and follow file structure but non is working.
...
});
});
我得到顯示該文件的錯誤沒有找到:
XMLHttpRequest cannot load file:///C:/Application/pages/Default.aspx.cs/testFunction. Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https, chrome-extension-resource.
你真的不應該爲此使用頁面或網頁/頁面方法。您應該使用[ASP.NET Web API](http://www.asp.net/web-api)。或者,如果您想要最小化,請使用通用處理程序(.ashx)或自定義處理程序。基本上,您的Web服務器應該公開一個端點,並且您的頁面應該通過AJAX與該端點通信。頁面(.aspx)不需要參與。將服務器端和客戶端分割成單獨的項目可能是一個好主意,因爲看起來您嘗試在客戶端上使用.aspx頁面。 – mason
你想從你的phonegap項目加載ASP文件嗎? –
此外,您不能使用相對路徑來引用暴露的端點,因爲端點將位於服務器上。你需要一個完整的URL,例如'https:// example.com/customer/1'。最好將頁面URL嵌入客戶端的配置中,然後在爲服務器調用構建URL時,將基本URL與要檢索的資源的路徑組合在一起。 'var BaseURL ='https://example.com'; $ .ajax({url:BaseURL +'/ customer /'+ customerId})'或者這些行的內容。 – mason