2014-07-03 23 views
6

Có thể đây là vấn đề chung, có thể có trên internet, Nhưng những gì tôi nhận được ở đây.AngularJS - đặt tiêu đề HTTP cho yêu cầu GET

Adding a custom header to HTTP request using angular.js

Vì vậy, tôi đi theo cùng, và thay đổi mã để

Thiết tiêu đề

var config = {headers: { 
       'Authorization': 'XXXYYY token="xxxxxxxx", realm="dash-api"', 
       "X-Testing" : "testing" 
       } 
      }; 

Cuộc gọi get yêu cầu:

return $http.get(api.host+'/agn/12/adv/1860/cam?status=1', config).then(function (response) { 
        return { 
         status:"success", 
         data:response.data.data.active 
        }; 
       }, function (error) { 
        return { 
         status:"error", 
         data:error 
        } 
       }); 

Như bạn có thể thấy yêu cầu đang ở trong loại phương thức OPTIONS và Authorization mã thông báo không được đặt trong yêu cầu.

Hãy giúp tôi trong vấn đề này, vì tôi đang gặp khó khăn trong hai ngày.

Cảm ơn rất nhiều.

enter image description here

+1

Bạn đã loại trừ CORS là một vấn đề? http://stackoverflow.com/questions/19554414/angularjs-disabling-cors – miqid

+1

Khá chắc chắn đó là yêu cầu CORS. Không chắc chắn tại sao 'api.host' sẽ ở đó nếu yêu cầu đến cùng một máy chủ lưu trữ ứng dụng. Nó làm cho cảm giác hoàn hảo cho các nhà cung cấp API để không cho phép CORS quá, vì nó có vẻ là làm xác thực mã thông báo trên một kênh không an toàn. – ivarni

Trả lời

1

Tôi nghĩ rằng nếu bạn có một cái nhìn tại liên kết bạn tham khảo, bạn đang nhận được cùng một vấn đề như tác giả và tác giả của bài viết đó đã làm nhà nước rằng đó là một vấn đề CORS - máy chủ ông đã giao tiếp với không hỗ trợ CORS, anh ấy xác nhận điều này trong bình luận của anh ấy trên bài đăng của anh ấy.

Vì lý do bạn nhận được yêu cầu TÙY CHỌN, điều này là do CORS thực hiện yêu cầu "trước chuyến bay" tới máy chủ để xác định xem CORS có được hỗ trợ hay không, trước khi yêu cầu thực tế.

0

Bạn đang thấy yêu cầu OPTIONS có thể là do bạn đang thực hiện yêu cầu gốc chéo (CORS). Trước tiên, máy chủ của bạn nên hỗ trợ CORS (bằng cách trả lời yêu cầu OPTIONS với tiêu đề Access-Control-Allow-Origin được đặt trong phản hồi).

Nếu bạn đang thực hiện yêu cầu gốc chéo đã được xác thực, bạn cần đặt withCredentials thành true khi thực hiện yêu cầu.

$http.get(url, { withCredentials: true }) 
Các vấn đề liên quan