使用jQuery.ajax和JSONP设置标题?

46

我正在尝试使用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) {
  }
});

如果我将dataType设置为jsonp,那么它不允许我设置标头(来自使用jQuery进行跨域Ajax请求)。 如果我不包含jsonp,我就无法进行跨域请求。 如果我使用jQuery.getJSON,我无法传递任何标头...

在jQuery中进行跨域ajax请求时,是否有任何方法可以定义自定义标头?

1个回答

69

这是不可能的。

JSONP请求通过创建一个带有src属性设置为请求URL的<script>元素来工作。
您不能为由<script>元素发送的HTTP请求添加自定义标头。


1
谢谢,很好知道。跟进问题:https://dev59.com/mE7Sa4cB1Zd3GeqP4Ygu。 - Lance

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接