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 έξω. Ας ελπίσουμε ότι κάποιος βρίσκει χρήσιμες.

</Τέλος>

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

  1. Marc D Anderson

    Paul:

    Νομίζω που πιάστηκαν από την JSON lite επιλογή εξήγησε σε αυτή τη θέση για τα Blogs γραφείο:
    http://blogs.office.com/2014/08/13/json-light-support-rest-sharepoint-api-released/
    Από αυτήν την αλλαγή, Εάν δεν καθορίσετε μια τιμή, από προεπιλογή να minimalmetadata. Δεν νομίζω ότι αυτό έχει να γίνει στις εγκαταστάσεις εγκαθιστά ακόμα, Έτσι, το αποσυνδέω.

    M.

Αφήστε μια απάντηση, να Paul Galvin Ακύρωση απάντησης

Η διεύθυνση email σας δεν θα δημοσιευθεί. τα απαιτούμενα πεδία είναι επισημασμένα *