Frage

Ich möchte über den WebProxy eine POST-Anforderung mit JSON-Daten an eine REST-API senden.Dazu stelle ich eine Anfrage wie:

$.ajax({
    url: "../_api/SP.WebProxy.invoke",
    type: "POST",
    data: JSON.stringify(
        {
            "requestInfo": {
                "__metadata": { "type": "SP.WebRequestInfo" },
                "Url": someURL,
                "Method": "POST",
                "Headers": {
                    "results": [{
                        "__metadata": { "type": "SP.KeyValue" },
                        "Key": "Accept",
                        "Value": "application/json;odata=verbose",
                        "ValueType": "Edm.String"
                    }]
                },
                "Body": json
            }
        }),
    headers: {
        "Accept": "application/json;odata=verbose",
        "Content-Type": "application/json;odata=verbose",
        "X-RequestDigest": $("#__REQUESTDIGEST").val()
    }
});

Jetzt ist meine Frage, wo muss ich meine JSON-Daten ablegen?Das Datenelement der Anfrage scheint für die Anfrage an den Webproxy zu sein.Ich denke, ich muss die Daten innerhalb der "inneren" Anfrage senden, aber mit dem body-Element funktioniert es nicht.

War es hilfreich?

Lösung

Fügen Sie Content-Type mit application/json zum Ergebnis-Array der Header hinzu (wie bei Accept), wie folgt:

results: [{
    __metadata: {
        type: "SP.KeyValue"
    },
    Key: "Accept",
    Value: "application/json",
    ValueType: "Edm.String"
}, {
    __metadata: {
        type: "SP.KeyValue"
    },
    Key: "Content-Type",
    Value: "application/json",
    ValueType: "Edm.String"
}]
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit sharepoint.stackexchange
scroll top