JQuery Json Accès à une Liste Sharepoint via Rest
J'essaie d'accéder à une liste sharepoint via Jquery et le RESTE de l'Interface. Le Site avec le code ci-dessous est en cours d'exécution localhost.
Ce code ne fonctionne pas:
$(document).ready(function() { getdata(); });
function getdata() {
alert("start");
$.ajax({
url: "http://spkerberostest.vz.ch/_vti_bin/ListData.svc/Tasks",
dataType: 'JSON',
success:function(json) { alert ("Success");
},
error:function(){
alert("Error");
}
});
};
Je reçois le Message d'Erreur
"À l'origine http://localhost:59936 n'est pas permis par l'Accès-Control-Allow-Origin."
Je ne suis pas sûr de ce que la raison est. Est-ce le fait que Sharepoint nécessite une Authentification (anonyme est bloqué) ou est-ce la croix-domaine d'appel? Ou même les deux?
Que puis-je faire? J'ai lu quelque part sur JSONP comme Type de Données. Mais cela n'a pas fonctionné.
Merci.
OriginalL'auteur murratore | 2011-07-28
Vous devez vous connecter pour publier un commentaire.
En supposant que ces deux ressources sont internes à votre entreprise, et vous avez toujours accès à l'un de l'autre, votre administrateur Sharepoint pourrait essayer de mettre sur ce que l'on appelle de la SCRO (Croix-Origin Resource sharing) des en-têtes sur le Sharepoint des serveurs IIS.
Cela permettra à votre croix-de l'origine des appels à terminer avec succès, comme le navigateur et les serveurs exchange en-têtes demandant de la croix-origine de partage. Vous pouvez en apprendre plus au sujet de la SCRO à http://enable-cors.org/
En ce qui concerne 3nigma de réponse. Jquery crossDomain drapeau ne fonctionne pas, parce que le Sharepoint services ne sont pas conçus comme JSONP services, qui est ce que Jquery tente de l'utiliser lorsque vous définissez le drapeau. (Le serveur Sharepoint aurait pour remplir les données comme si c'était un fichier Javascript avec un seul objet JSON, mais je n'en connais pas un moyen de le configurer pour le faire.)
OriginalL'auteur Chris Jaynes
Vous devez appeler plutôt votre propre serveur, et ensuite votre serveur d'appeler le Serveur SharePoint. En supposant que vous utilisez un C# de niveau intermédiaire, il ressemblerait à quelque chose comme ceci:
Bien sûr, vous devez ajouter du code pour générer du json retour à votre client, mais le code ci-dessus est de savoir comment vous pouvez obtenir les SP de données dont vous avez besoin.
Merci,
Matt
OriginalL'auteur Matt Cashatt
Juste au cas où quelqu'un d'autre est hiting ce problème, j'ai eu ce travail dans mon environnement par la mise en jquery, suoport.la scro à true. le code est:
cela me permet d'accéder à une liste sur un autre serveur physique. Pas de changements pour iis ont été nécessaires. Pas de JSONP nécessaire.
OriginalL'auteur Russellg
OriginalL'auteur DerDer73