【发布时间】:2012-12-05 08:13:39
【问题描述】:
谁能告诉我如何在 jquery 中使用 ajax 调用为跨域 jsonp 调用添加自定义标头。我正在使用 ajax 跨域调用在 html 页面中调用 webservice。因为这是使用 jsonp,现在我必须发送一些参数在标题中,我如何设置标题。
【问题讨论】:
谁能告诉我如何在 jquery 中使用 ajax 调用为跨域 jsonp 调用添加自定义标头。我正在使用 ajax 跨域调用在 html 页面中调用 webservice。因为这是使用 jsonp,现在我必须发送一些参数在标题中,我如何设置标题。
【问题讨论】:
恐怕这是不可能的。 jQuery 为 JSONP 使用 <script> 标记,如您所知,您不能使用此标记设置自定义标头。作为一种可能的解决方法,您可以在您的域上编写一个服务器端脚本,该脚本将充当您的域和远程域之间的桥梁。然后向您的脚本发送一个正常的 AJAX 请求,该脚本又会将调用委托给实际的 Web 服务。由于它是服务器到服务器的通信,因此您的脚本可以设置远程服务所需的任何 HTTP 请求标头。
【讨论】:
<script> 标记,它不允许你设置自定义请求标头。如果你想让这个工作,你将不得不阅读我的答案的第二部分,我建议你在你的域上使用服务器端脚本作为桥梁,不再使用 JSONP。