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

Posted

技术标签:

【中文标题】使用 jQuery.ajax 和 JSONP 设置标题?【英文标题】:Set Headers with jQuery.ajax and JSONP? 【发布时间】:2011-03-05 15:16:12 【问题描述】:

我正在尝试使用 jQuery 访问谷歌文档。这是我目前所拥有的:

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(来自Make Cross Domain Ajax Requests with jQuery),它不允许我设置标题。如果我遗漏了jsonp,我就无法发出跨域请求。如果我使用jQuery.getJSON,则无法传入任何标题...

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

【问题讨论】:

【参考方案1】:

这是不可能的。

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

【讨论】:

谢谢,很高兴知道。后续问题:***.com/questions/3073336/….

以上是关于使用 jQuery.ajax 和 JSONP 设置标题?的主要内容,如果未能解决你的问题,请参考以下文章

使用 JQuery Ajax 和 JSONP 调用 OData 服务

jQuery Ajax & jsonp

jQuery ajax调接口时跨域

jquery ajax jsonp 和 angularjs $http json 的区别

jQuery ajax jsonp 使用模型

jquery $.ajax jsonp