SharePoint 2013 APP 开发示例 (四)JQuery访问REST
这个示例里,我们将用JQuery AJAX去发送一个 REST请求,并查看返回结果。为了让我们更好地理解REST 接口,我们将添加一个输入框让用户可以指定REST的URL, 这将让我们尝试着用构造的URL从SharePoint去获取信息。
首先,我们将创建一个 SharePoint-hosted app。然后我们将在APP的default页面添加输入框,最后我们将添加一个 view-model 去请求 REST并显示结果。
1. 打开 Visual Studio 2012.
2. 创建SharePoint 2013 app.
3. 选择SharePoint-hosted
4. 打开Default.aspx 页面.
5.添加 Knockout library.
<script type="text/javascript" src="https://ajax.aspnetcdn.com/ajax/knockout/knockout-2.2.1.js" ></script>
6. 替换PlaceHolderMain里面的内容:
<div>
<input type="text" data-bind="value: url" size="100" />
<br />
<br />
<select data-bind="value: format">
<option value="application/json;odata=verbose">application/json;odata=verbose</option>
<option value="application/atom-xml">application/atom-xml</option>
</select>
<br />
<br />
<input data-bind="click: onRunRequest" type="button" value="Execute the REST Request" />
<br />
<br />
<h1 data-bind="text: status"></h1>
<p data-bind="text: message" />
</div>
7. 保存并关闭Default.aspx.
这个页面将提供一个 text box 让用户可以输入REST的URL, 一个drop-down list让用户可以选择数据格式,一个 button 去请求REST。返回的结果将显示在页面最下方。
8. 打开 App.js .
9. 替换下面的内容:
var appweburl = decodeURIComponent(getQueryStringParameter("SPAppWebUrl"));
var hostweburl = decodeURIComponent(getQueryStringParameter("SPHostUrl"));
$(function () { ko.applyBindings(new defaultViewModel()); });
function defaultViewModel() {
var self = this;
self.status = ko.observable();
self.message = ko.observable();
self.url = ko.observable("/_api/web");
self.format = ko.observable();
self.result = null;
self.onRunRequest = function () {
jQuery.ajax({
url: appweburl + self.url(),
type: "GET",
headers: {
"accept": self.format(),
},
success: Function.createDelegate(self, self.onComplete),
error: Function.createDelegate(self, self.onComplete)
});
};
self.onComplete = function (data, status) {
self.status(status);
if (self.format() == 'application/atom-xml') {
self.result = data;
self.message((new XMLSerializer()).serializeToString(data));
} else {
self.result = data.d;
self.message(JSON.stringify(data));
}
}
}
// Utility routine
function getQueryStringParameter(paramToRetrieve) {
var params =
document.URL.split("?")[1].split("&");
var strParams = "";
for (var i = 0; i < params.length; i = i + 1) {
var singleParam = params[i].split("=");
if (singleParam[0] == paramToRetrieve)
return singleParam[1];
}
}
onRunRequest() function 初始化异步的 REST 请求
•• url—它被用来访问app web,因为这个页面在同一个domain里运行,所以它不是跨domain的请求。
•• type—指定是 GET 操作,而不是 POST.
•• headers—我们用"accept" header 来指定我们希望收到的数据格式
•• success—请求成功的事件
•• error—请求成功但有error的事件
onComplete() function 同时处理了有error和没有error的情况.
10. 保存App.js file.
11. 按 F5 开始debug.
12. 当Default.aspx page 打开的,按 execute 按钮将会看到JSON格式的结果:
很多属性都被返回到了 _deferred 里. 这些值没有被选在query里,但是能用REST请求的URL获取到.
13.选择application/atom-xml .
14. 按 execute 按钮将会看到XML格式的结果。
试着用其它REST URL看能返回什么数据, 我们可以在返回的数据里找到很多uri,如_api/Web/Lists等。
SharePoint 2013 APP 开发示例 (四)JQuery访问REST的更多相关文章
- SharePoint 2013 APP 开发示例 (五)跨域访问 Web Service (REST API)
虽然 JQuery 也能通过授权header实现跨域, 但SharePoint 提供了更简单的方法,它被实现在SP.RequestExecutor里 .它能访问跨域的服务包括REST AP ...
- SharePoint 2013 APP 开发示例 (六)服务端跨域访问 Web Service (REST API)
上个示例(SharePoint 2013 APP 开发示例 (五)跨域访问 Web Service (REST API))是基于JavaScript,运行在web browser内去访问REST AP ...
- SharePoint 2013 APP 开发示例 系列
SharePoint 2013 APP 安全: SharePoint 2013 APP 开发示例 (一)List 读写 SharePoint 2013 APP 开发示例 (二)获取用户信息 Share ...
- SharePoint 2013 APP 开发示例 (三)使用远程的web资源
在这个示例里我们将详细介绍 TokenHelper 类, 我们将看到它是怎么简单地从远程web站点访问SharePoint的.我们还将取到它的一些值.这将帮助我们理解连接是怎么被构造的,同时也方便我们 ...
- SharePoint 2013 APP 开发示例 (一)List 读写
在这个示例里,我们将创建一个页面测试 SharePoint APP的权限.这个页面有二个按钮,一个从documents里读数据,一个往documents里写数据: 1. 打开Visual Studio ...
- SharePoint 2013 APP 开发示例 (二)获取用户信息
SharePoint 2013 APP 开发示例 (二)获取用户信息 这个示例里,我们将演示如何获取用户信息: 1. 打开 Visual Studio 2012. 2. 创建一个新的 SharePo ...
- SharePoint 2013 App 开发—Auto Hosted 方式
Auto Hosted 方式,自动使用Windows Azure来作为host,这种模式将App 发布到Office 365上的SharePoint Developer Site上.这种方式可以不用花 ...
- SharePoint 2013 App 开发—SharePoint Hosted方式,
这篇文章会依据简单的Demo,介绍一下SharePoint Hosted 方式开发App 的步骤和说明. 这种方式的环境相比较Office 365 要麻烦一些,如果不可以连接到Internet 或者还 ...
- SharePoint 2013 App 开发—App开发概述
基于安全性的考虑,SharePoint App 不能像其它两种方式一样,直接使用安全性更高的服务端代码的API.Javascript 扮演极为重要的角色,在SharePoint App中与ShareP ...
随机推荐
- VS2017中 C# dll引用(C生成dll,C++生成dll)小结 - 简书
原文:VS2017中 C# dll引用(C生成dll,C++生成dll)小结 - 简书 dll引用小结 一.dll与应用程序 动态链接库(也称为DLL,即为“Dynamic Link Library” ...
- [Oracle]Oracle 各产品的 生命周期
http://www.oracle.com/us/support/library/lifetime-support-technology-069183.pdf
- python语言程序设计5
1, 评估函数eval() 去掉参数最外侧引号并执行余下语句的函数. 比如eval("1"),经过运行可以得到数字 1 去得是单双引号,不是括号哦.. 广泛来说,能将任何字符串的形 ...
- 利用阿里云的源yum方式安装Mongodb
今天在线上服务器上安装MongoDB,从Mongo官网直接下载链接,结果在下载时发觉速度慢的可怜.迫于无奈,只能找国内的镜像下载.这里选择阿里云的源进行安装,记录如下: 1)在/etc/yum.rep ...
- 小程序encryptedData
准备知识: Base64编解码 AES算法.填充模式.偏移向量 session_key会话密钥,以及怎么存储和获取 以上3点对于理解解密流程非常重要. 根据官方文档,我梳理了大致的解密流程,如下: 小 ...
- Wannafly挑战赛25 B.面积并
链接 [https://www.nowcoder.com/acm/contest/197/B] 分析 特殊优先考虑 首先考虑r>=l这种情况就是圆的面积了 第二就是r<=内切圆的半径,这个 ...
- 《Linux内核分析》第五周笔记 扒开系统调用的三层皮(下)
扒开系统调用的三层皮(下) 一.给menuOS增加time和time-asm 通过内核调试系统调用.将上次做的实验加入到menusOS,变成menusOS里面的两个命令. 1 int Getpid(i ...
- ios开发之--CAKeyframeAnimation的详细用法
简单的创建一个带路径的动画效果,比较粗糙,不过事先原理都是一样的, 代码如下: 1,创建动画所需的view -(void)creatView { moveView = [UIView new]; mo ...
- suqid透明正向代理
如果想实现透明正向代理,则必需将用户的网关IP指向 Squid 服务器,而此后便无需再修改浏览器选项 在命令行 <菜单+R> 中使用 ping 命令: ping www.baidu.c ...
- PAT 1019 数字黑洞
https://pintia.cn/problem-sets/994805260223102976/problems/994805302786899968 给定任一个各位数字不完全相同的4位正整数,如 ...