[英]Creating a Cross-Platform Mobile Application for SharePoint 2013
我想為我的SharePoint服務器制作一個簡單的CRUD跨平台移動應用程序。 我正在使用PhoneGap來處理跨平台編碼 - 因此我的代碼將使用HTML,CSS和JavaScript。
我遇到的主要障礙是使用我的SharePoint服務器進行身份驗證。 許多人在線都成功使用了AJAX調用,但是我收到以下錯誤:
XMLHttpRequest cannot load http://<DOMAIN>/_vti_bin/authentication.asmx. The request was redirected to 'http://<DOMAIN>/_layouts/15/error.aspx?ErrorText=Request%20format%20is%20unrecognized%2E', which is disallowed for cross-origin requests that require preflight.
以下是我的JavaScript代碼:
function Authenticate() {
$.support.cors = true;
$.mobile.allowCrossDomainPages = true;
$("#topnavcontent").append("Creating SOAP envelope...</br>");
var soapEnv = "<soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">" +
"<soap:Body>" +
"<Login xmlns=\"http://schemas.microsoft.com/sharepoint/soap/\">" +
"<username>USERNAME</username>" +
"<password>PASSWORD</password>" +
"</Login>" +
"</soap:Body>" +
"</soap:Envelope>";
$("#topnavcontent").append("Calling authenticate.asmx...</br>");
$.ajax({
url: "http://<DOMAIN>/_vti_bin/authentication.asmx",
type: "POST",
data: soapEnv,
complete: authenticationResultSuccess,
contentType: "text/xml; charset=\"utf-8\"",
error: authenticationResultError
});
}
我知道瀏覽器正在發送一個飛行前OPTIONS調用。 默認情況下,SharePoint網站不支持OPTIONS調用。 是否有任何解決方法,例如禁用此OPTIONS調用或SharePoint站點上允許預先飛行的webconfig中的設置。 在此先感謝您的幫助。
Office 365 API旨在用於移動應用程序和獨立Web應用程序。 更多細節在這里: http : //msdn.microsoft.com/en-us/library/office/dn605892(v = office.15).aspx
使用新的Office 365 API對Azure AD進行身份驗證后,您實際上可以將SharePoint CSOM和REST API與身份驗證承載一起使用。
您是否在Visual Studio 2013中檢出了Cordova(PhoneGap)項目類型? 當您在解決方案資源管理器中的項目節點添加連接以連接到Office 365 API時,這將生成js文件。
很快,我們將在http://www.github.com/OfficeDev上的MS TechEd NA Keynote上演示WoodGrove App的代碼示例。
目前通過Android SDK使用此API的原生Android示例https://github.com/OfficeDev/Office-365-SDK-for-Android
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.