99% cuộc gọi ajax của tôi cần một "X-API-TOKEN" cụ thể để xác thực và giao tiếp với Rails REST API của tôi. Nhưng tôi cũng đang thực hiện cuộc gọi tới một API bên thứ ba và tôi vẫn gặp lỗi khi nói "Yêu cầu trường tiêu đề X-API-TOKEN không được cho phép bởi Access-Control-Allow-Headers."Làm cách nào để xóa tiêu đề mặc định chỉ cho các yêu cầu XHR cụ thể trong AngularJS?
Tất cả mọi thứ hoạt động tốt nếu tôi xóa chúng header ngay trước khi cuộc gọi, và một công việc xung quanh sẽ được xóa và sau đó thêm lại sau cuộc gọi, nhưng là có một cách dễ dàng hơn này:
apiToken = $http.defaults.headers.common["X-API-TOKEN"]
delete $http.defaults.headers.common["X-API-TOKEN"]
$http(
method: "GET"
url: 'http://...}}'
).success((data, status, headers, config) ->
).error (data, status, headers, config) ->
$http.defaults.headers.common["X-API-TOKEN"] = apiToken
Giải pháp này là tốt cho chúng ta chỉ có một khóa, nhưng nếu chúng ta có nhiều tiêu đề tùy chỉnh và có nhiều cuộc gọi api bên ngoài mà chúng tôi không cần các tiêu đề này. Chúng ta có thể đạt được điều này bằng cách sử dụng transformRequest không? –