Μηνιαία Αρχεία: Ιανουαρίου 2015

HTTP 406 Σφάλμα κατά τη χρήση γωνιακή $http.get εναντίον του SharePoint υπόλοιπο τελικά σημεία

Ενημέρωση: Marc AD ndersson επεσήμανε αυτό το μεγάλο κομμάτι των πληροφοριών: http://Blogs.Office.com/2014/08/13/JSON-Light-support-REST-SharePoint-API-Released/. Που εξηγεί πολύ :).

Αυτό μπορεί να είναι η χειρότερη τίτλος του ένα blog post ποτέ! Anyhoo.

Συνήθως κάνω όλα μου πρωτοτυποποίηση ενάντια σε μια παρουσία O365. Έχω προσωπική παράδειγμα μου, έτσι ώστε δεν χρειάζεται να ανησυχείτε για το που κάποιος άλλος επηρεάζουν. Σαν παραλειπόμενα-Θυμηθείτε όταν καλούμε γίνεται γύρω από τις εικονικές μηχανές μας φορητούς υπολογιστές με το ΒΡΎΟ-SQL Server, IIS, ΑΡΧΈΣ vs Hyper-V. VMWare? Anyhoo...

Είχα αναπτύξει app χρησιμοποιώντας γωνιακή σε αυτό το περιβάλλον που κάνει, μεταξύ άλλων, αυτό:

$http.get(serverUrl)
.επιτυχία(συνάρτηση(δεδομένα, κατάσταση, κεφαλίδες, Config) {

var getLinksResponse = δεδομένων;

getLinksResponse.value.forEach(συνάρτηση(theResult) {

// και ούτω καθεξής και έτσι αφρό

Δούλευε μια χαρά σε δύο διαφορετικά SharePoint online περιβάλλοντα. Ωστόσο, όταν ο συνάδελφός μου μεταφέρει σε μια παρουσία Cloudshare, είχε πάρει μια HTTP 406 σφάλμα (που ήταν η πρώτη φορά που πήρα ποτέ ότι ένας, έτσι... yay, Υποθέτω). Κάναμε ένα κομμάτι της έρευνας και παρατήρησα ότι η επικεφαλίδα "Αποδοχή" ήταν μακριά. SharePoint online ήταν απόλυτα ευχαριστημένος με:

Δεχθεί: εφαρμογή/json

Αλλά η παρουσία του cloudshare (Ποιο είναι το SP στο prem, φιλοξενείται σε έναν εικονικό διακομιστή) ήθελε το κλασικό "odata = verbose" προστίθεται στο καθώς και:

Δεχθεί: εφαρμογή/json;OData = λεπτομερή

Να καθορίσει ότι, Έχουμε προσθέσει την κεφαλίδα, ως εκ τούτου:

var config = {κεφαλίδες: {
"Αποδοχή": «εφαρμογή/json;OData = λεπτομερή»
}
};

$http.get(serverUrl,Config)
.επιτυχία(συνάρτηση(δεδομένα, κατάσταση, κεφαλίδες, Config) {

var getLinksResponse = δεδομένων;

getLinksResponse.value.forEach(συνάρτηση(theResult) {

// και ούτω καθεξής και έτσι αφρό

Που πια απαλλαγεί από το 406, αλλά επίσης άλλαξε την μορφή της απάντησης. Ήταν περισσότερο... λεπτομερούς καταγραφής. (haha!) Περισσότερες αλλαγές που απαιτούνταν, και εδώ είναι το τελικό αποτέλεσμα:

var config = {κεφαλίδες: {
"Αποδοχή": «εφαρμογή/json;OData = λεπτομερή»
}
};

$http.get(serverUrl,Config)
.επιτυχία(συνάρτηση(δεδομένα, κατάσταση, κεφαλίδες, Config) {

var getLinksResponse = δεδομένων;

getLinksResponse.d.Results.forEach(συνάρτηση(theResult) {

// και ούτω καθεξής και έτσι αφρό

Αυτό μόνο να μετατραπεί σε ένα 30 λεπτό πρόβλημα για μας, έτσι εμείς lucked έξω. Ας ελπίσουμε ότι κάποιος βρίσκει χρήσιμες.

</Τέλος>

Πώς-να: Επιτρέπει πολλαπλά τμήματα γωνιακή του SharePoint στο Web στην ίδια σελίδα

Αυτό το blog θέσεις περιγράφει πώς μπορείτε να έχετε πολλαπλές Angular.js με βάση τμημάτων web του SharePoint (αναφορά μέσω ενός τμήματος web περιεχόμενο editor) στην ίδια σελίδα. Ζητώ ένα τμήμα web περιεχόμενο editor (CEWP) ότι οι αναφορές JavaScript που κατασκευάστηκε με τη χρήση του πλαισίου Angular.js ένα "γωνιακή τμήμα Web."

Διαδικασία εκκίνησης της γωνιακής πανεύκολο και ακριβώς για κάθε παράδειγμα μπορείτε να βρείτε για το Ίντερνετ πηγαίνει κάτι παρεμφερή:

<HTML ng-app = «myApp»>

<μπλα /><μπλα /><μπλα />

</HTML>

Αυτό διασπά, Ωστόσο, Εάν θέλετε να ενεργοποιήσετε του πολλαπλές CEWP που αντιπροσωπεύει πολλά τμήματα γωνιακή web στην ίδια σελίδα. Γωνιακή θα μόνο αυτόματα εκκίνηση κατά την πρώτη οδηγία ng-app αυτό βρίσκει – τουλάχιστον από την γωνιακή έκδοση 1.3.6. Η λύση είναι αρκετά απλή-να Μπουτστράπ με μη αυτόματο τρόπο τον κωδικό σας αντί. Τα παραπάνω τώρα αλλάζει σε κάτι σαν αυτό:

<οργανισμός>
<d
IV id =”bootstrapHere” ng-ελεγκτή =”myController ως theController”>
<μπλα /><μπλα /><μπλα />
</div>
</οργανισμός>

<σενάριο src =”//Ajax.googleapis.com/Ajax/libs/angularjs/1.3.6/angular.js”></σενάριο>

<σενάριο>
angular.bootstrap(angular.Element(document.getElementById(“bootstrapHere”)),[«myApp»]);
</σενάριο>

Βασικά, αντί να χρησιμοποιεί ng-app στο στοιχείο για να κάνει σας bootstrapping, ράπισμα σας ID επάνω σε αυτό το στοιχείο. Στη συνέχεια, Χρησιμοποιήστε τον κώδικα εκκίνησης() μέθοδος για την γωνιακή ίδια να ελέγξει το bootstrapping επεξεργασία κατά το χρόνο εκτέλεσης. Έχω δοκιμαστεί αυτό με τρία τμήματα διαφορετική γωνιακή web στην ίδια σελίδα και λειτουργεί ένα γοητεία.

</Τέλος>

undefinedΕγγραφείτε στο blog μου.

Συνέχεια μου για Twitter σε http://www.twitter.com/pagalvin