小编典典

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

ajax

我正在尝试使用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,则无法传递任何标题…

发出跨域ajax请求时(在jQuery中),有什么方法可以定义自定义标头?


阅读 300

收藏
2020-07-26

共1个答案

小编典典

这是不可能的。

JSONP请求的工作原理是创建一个<script>元素,并将其src属性设置为请求URL。
您不能将自定义标头添加到<script>元素发送的HTTP请求中。

2020-07-26