rest - reemplazar - mostrar elementos de una lista c#
403 errores de solicitud prohibidos y 400 incorrectos al agregar y eliminar elementos a la lista de SharePoint utilizando REST (1)
Hola, soy nuevo en el desarrollo de SharePoint. Estoy intentando desarrollar una aplicación de SharePoint simple usando SharePoint en línea. Tengo una lista llamada ''Productos'' en mi colección de sitios. en mi aplicación escribí el siguiente código para agregar y eliminar elementos a esa lista
function addProduct(product) {
var executor;
executor = new SP.RequestExecutor(appwebUrl);
var url = appwebUrl +"/_api/SP.AppContextSite(@target)/web/lists/getbytitle(''Products'')/items/?@target=''" + hostwebUrl+"''";
executor.executeAsync({
url: url,
method: "POST",
body: JSON.stringify({__metadata: { type: ''SP.Data.ProductsListItem'' },
Title: product.ProductName(),
ProductId: product.ProductId(),
ProductName: product.ProductName(),
Price:product.Price()
}),
headers: {
"Accept": "application/json; odata=verbose",
"content-type": "application/json;odata=verbose",
},
success: successProductAddHandler,
error: errorProductAddHandler
});
}
function successProductAddHandler(data) {alert(''added successfully'') }
function errorProductAddHandler(data, errorCode, errorMessage) { alert(''cannot perform action'') }
function deleteProduct(product) {
var executor;
executor = new SP.RequestExecutor(appwebUrl);
var url=appwebUrl+"/_api/SP.AppContextSite(@target)/web/lists/getbytitle(''Products'')/items(''" + product.ID() + "'')/?@target=''" + hostwebUrl + "''";
executor.executeAsync({
url: url,
method: "POST",
headers: {
"IF-MATCH": "*",
"X-HTTP-Method": "DELETE"
},
success: successProductAddHandler,
error: errorProductAddHandler
});`
Obtengo el error 403 cuando llamo addProduct, y 400 error cuando llamo deleteProduct, soy capaz de obtener los elementos de la lista y mostrarlos.
Intenté agregar X-RequestDigest ": $ (" #__ REQUESTDIGEST "). Val () pero no funcionó
si incluyo "Aceptar": "application / json; odata = verbose" en el encabezado de solicitud para deleteProduct (), y cuando llamo deleteProduct, dos solicitudes van al servidor
1) .sites / productsdev / productsapp / _api / contextinfo (obteniendo el valor del resumen)
2) /sites/ProductsDev/ProductsApp/_api/SP.AppContextSite (@target) / web / lists / getbytitle (''Products'') / items (itemid) /? @ Target = ''mysitecollectionurl'' (utilizando el valor de resumen devuelto por el llamada anterior para X-RequestDigest)
Cada vez que realice una operación POST en SharePoint 2013 mediante la API REST, debe pasar el siguiente fragmento en el encabezado
"X-RequestDigest": $ ("#__ REQUESTDIGEST"). Val ()
p.ej
encabezados: {"Aceptar": "application / json; odata = verbose", "X-RequestDigest": $ ("#__ REQUESTDIGEST"). val ()}