SharePoint托管的应用程序REST API
问题描述:
所以,我一直在审查我可以找到的每一个资源,几乎尝试了我在这里找到的所有代码并使用Microsoft文档。我无法弄清楚我做错了。我试图更新在使用REST名为计划订单列表称为DispatchStatus场,但无论我怎么努力,我不是得到一个不确定的结果在成功函数与现场不被更新或我得到SharePoint托管的应用程序REST API
{"readyState":4,"responseText":"404 NOT FOUND","statusText":"NOT FOUND"}
作为错误返回。
这里是代码我使用:
function updateDelivery(id) {
var url = "_api/web/lists/GetByTitle('Scheduled Orders')/items(" + id + ")"
var itemMetadata = {
'__metadata': {
'type': getListItemType('Scheduled Orders')
},
'DispatchStatus': document.getElementById(id).value
};
updateL(url, itemMetadata, checkresult);
}
function updateItem(url, itemMetadata, callback) {
$.ajax({
url: _spPageContextInfo.webAbsoluteUrl + url,
data: JSON.stringify(itemMetadata),
type: 'POST',
contentType: 'application/json;odata=verbose',
headers: {
'X-HTTP-Method': 'MERGE',
'X-RequestDigest': $("#__REQUESTDIGEST").val(),
'Accept': 'application/json;odata=verbose',
'IF-MATCH': '*'
},
success: function (data) {
callback(data);
},
error: function (error) {
alert(JSON.stringify(error));
}
});
}
function getListItemType(name) {
var ret = "";
var url = _spPageContextInfo.webAbsoluteUrl + "/_api/web/lists/getbytitle('" + name + "')?$select=ListItemEntityTypeFullName"
$.ajax({
url: url,
method: "GET",
async: false,
headers: {
"Accept": "application/json; odata=verbose"
},
success: function (data) {
ret = data.d.ListItemEntityTypeFullName
},
error: function (error) {
alert(JSON.stringify(error));
}
});
return ret;
}
这似乎是它应该是一个简单的任务,我缺少必要的数据?我是否需要复制项目中的所有以前的数据?或者我需要去更新列表项目的不同?
答
我想通了。原来,这是工作的全部时间,但IE浏览器显然已经认识到
var a = b = c = d = "";
insted的的
var a = "";
var b = "";
var c = "";
var d = "";
所以在IE浏览器,这是浏览器我有开发本作的问题,它看起来像它没有工作,因为正在更新的价值没有被收回。当我在Chrome浏览器中查看应用程序并注意到一切正常时,我意识到这不是我的REST调用,而是浏览器的问题。我追查下来,现在它终于在IE中工作。还有一件事情,IE导致打破,但所有其他浏览器的其他一切工作正常。我想知道为什么其他一切正常工作,除了在IE浏览器中的var c
。对于我的生活,我无法弄清楚为什么只有那一个变量不能被分配一个值,只有在IE中?