HTTP 406 Lỗi khi sử dụng góc $http.get chống lại SharePoint còn lại điểm

Cập Nhật: Marc quảng cáo ndersson chỉ ra này mảnh lớn của thông tin: http://Blogs.Office.com/2014/08/13/JSON-Light-support-Rest-SharePoint-API-Released/. Điều đó giải thích rất nhiều :).

Đó có thể là tên tồi tệ nhất của một bài đăng blog bao giờ! Anyhoo.

Tôi thường làm tất cả của tôi prototyping chống lại một thể hiện O365. Tôi có trường hợp cá nhân của tôi để tôi không cần phải lo lắng về ảnh hưởng đến bất cứ ai khác. Là một sang một bên-nhớ khi chúng tôi gọi mang xung quanh máy ảo trên máy tính xách tay của chúng tôi với RÊU-SQL Server, IIS, quyết định Hyper-V vs. VMWare? Anyhoo...

Tôi đã phát triển một ứng dụng bằng cách sử dụng góc trong môi trường này nào, trong số những thứ khác, Điều này:

$http.Get(serverUrl)
.thành công(chức năng(dữ liệu, tình trạng, tiêu đề, cấu hình) {

var getLinksResponse = dữ liệu;

getLinksResponse.value.forEach(chức năng(theResult) {

// và như vậy và như vậy tuyển

Điều này đã làm việc tốt trong hai khác nhau SharePoint môi trường trực tuyến. Tuy nhiên, Khi đồng nghiệp của tôi chuyển nó đến một trường hợp Cloudshare, ông đã nhận được một HTTP 406 lỗi (đó là lần đầu tiên tôi đã bao giờ nhận rằng một trong những, Vì vậy... yay, Tôi đoán). Chúng tôi đã làm một chút về nghiên cứu và nhận thấy rằng các tiêu đề "Chấp nhận" đã tắt. SharePoint trực tuyến là hoàn toàn hài lòng với:

Chấp nhận: ứng dụng/json

Nhưng trường hợp cloudshare (đó là SP trên prem, được tổ chức trong một máy chủ ảo) muốn cổ điển "odata = tiết" được thêm vào trong là tốt:

Chấp nhận: ứng dụng/json;oData = tiết

Để sửa chữa đó, chúng tôi thêm các tiêu đề như vậy:

var config = {tiêu đề: {
'Chấp nhận': ' ứng dụng/json;oData = tiết '
}
};

$http.Get(serverUrl,cấu hình)
.thành công(chức năng(dữ liệu, tình trạng, tiêu đề, cấu hình) {

var getLinksResponse = dữ liệu;

getLinksResponse.value.forEach(chức năng(theResult) {

// và như vậy và như vậy tuyển

Mà đã thoát khỏi các 406, nhưng nó cũng thay đổi định dạng của các phản ứng. Nó đã nhiều... tiết. (haha!) Nhiều thay đổi được yêu cầu và đây là kết quả cuối cùng:

var config = {tiêu đề: {
'Chấp nhận': ' ứng dụng/json;oData = tiết '
}
};

$http.Get(serverUrl,cấu hình)
.thành công(chức năng(dữ liệu, tình trạng, tiêu đề, cấu hình) {

var getLinksResponse = dữ liệu;

getLinksResponse.d.results.forEach(chức năng(theResult) {

// và như vậy và như vậy tuyển

Điều này chỉ biến thành một 30 Các vấn đề phút cho chúng tôi, Vì vậy chúng tôi lucked. Hy vọng rằng ai đó tìm thấy điều này hữu ích.

</kết thúc>

2 Những suy nghĩ trên "HTTP 406 Lỗi khi sử dụng góc $http.get chống lại SharePoint còn lại điểm

  1. Marc D Anderson

    Paul:

    Tôi nghĩ rằng bạn đã bị bắt bởi các tùy chọn lite JSON giải thích trong bài đăng trên blog văn phòng:
    http://blogs.office.com/2014/08/13/json-light-support-rest-sharepoint-api-released/
    Kể từ đó thay đổi, Nếu bạn không chỉ định một giá trị, nó mặc định để minimalmetadata. Tôi không nghĩ rằng điều này đã làm cho nó để trên cơ sở cài đặt được, do đó ngắt kết nối.

    M.

Để lại câu trả lời

Địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu *