我正在尝试将新项目发布/创建(不更新)到LookUp字段。我之前跟随example,example并成功了。但由于某种原因,我现在无法进行简单的Post调用。我需要额外的一双眼睛来看看我的代码。
查找字段internalName是“questionRelation”。我现在必须在名称后添加Id,以在Lookup字段所代表的列表中指定Id列。
var data = {
__metadata: { "type": window._cache.ListItemType },
Title: user_answer,
questionRelationId: {
'results': parseInt(question_Id)
}
};
var _answers = "answers";
var _url = _spPageContextInfo.webAbsoluteUrl + "/_api/web/lists/getbytitle('" + _answers + "')/Items"
var _type = "POST";
var _headers = {
"accept": "application/json;odata=verbose",
"X-RequestDigest": jQuery("#__REQUESTDIGEST").val(),
"content-Type": "application/json;odata=verbose"
}
var _data = JSON.stringify(data);
jQuery.ajax({
url: _url,
type: _type,
headers: _headers,
data: _data,
done: function (data, textStatus, jHXR) {},
error: function (data, textStatus, jHXR) {});
我得到的错误是:
从JSON阅读器读取时发现了一个意外的'StartObject'节点。预计会有'PrimitiveValue'节点。
我已将查找字段设置为仅采用一个值(id)。非常感谢投入。
更新
我改变了:
questionRelationId: {
'results': parseInt(question_Id)
}
为:
questionRelationId: parseInt(question_Id)
我工作了。他们这样做的方式是查找列采用数组。如果是单个值,则必须删除results
对象部分。当我查看我自己提供的文档时,我没有注意。
答案 0 :(得分:1)
以下代码适用于我当地。
<script type="text/javascript">
var itemProperties = {
"__metadata": { "type": "SP.Data.ChildListItem" },
"Title": "RestApiCreated",
"LookupParentId":1
};
function createListItem() {
$.ajax({
url: _spPageContextInfo.webAbsoluteUrl + "/_api/web/lists/getbytitle('child')/items",
type: "POST",
contentType: "application/json;odata=verbose",
data: JSON.stringify(itemProperties),
headers: {
"Accept": "application/json;odata=verbose",
"Content-Type": "application/json;odata=verbose",
"X-RequestDigest": $("#__REQUESTDIGEST").val(),
"X-HTTP-Method": "POST"
},
success: function (data, textStatus, jqXHR) {
alert(data.d.length);
},
error: function (jqXHR, textStatus, errorThrown) {
alert(jqXHR);
}
});
}
</script>
并尝试使用fiddler监视请求原始标头以识别标头值。