web-dev-qa-db-ja.com

jQuery.ajaxとJSONPでヘッダーを設定しますか?

JQueryでGoogleドキュメントにアクセスしようとしています。ここに私が持っているものがあります:

var token = "my-auth-token";
$.ajax({
  url: "http://docs.google.com/feeds/documents/private/full?max-results=1&alt=json",
  dataType: 'jsonp',
  beforeSend: function(xhr) {
    xhr.setRequestHeader("Authorization", "GoogleLogin auth=" + token);
  },
  success: function(data, textStatus, XMLHttpRequest) {
  },
  error: function(XMLHttpRequest, textStatus, errorThrown) {
  }
});

dataTypejsonpに設定すると、ヘッダーを設定できません( jQueryでクロスドメインAjaxリクエストを作成 から)。 jsonpを省略すると、クロスドメインリクエストを作成できません。 jQuery.getJSONを使用すると、ヘッダーを渡すことができません...

(jQueryで)クロスドメインajaxリクエストを行うときにカスタムヘッダーを定義する方法はありますか?

46
Lance Pollard

これは不可能です。

JSONPリクエストは、src属性をリクエストURLに設定して<script>要素を作成することで機能します。
<script>要素によって送信されたHTTPリクエストにカスタムヘッダーを追加することはできません。

69
SLaks