【问题标题】:is it possible to set custom headers on js <script> requests?是否可以在 js <script> 请求上设置自定义标头?
【发布时间】:2011-02-01 18:54:09
【问题描述】:

这样的事情可能吗?

<script src="http://myserver.com/some.js" my-custom-header="foo"></script>

更新(更详细一点):

有人问我是否有一种方法可以将某些参数作为脚本请求的一部分使用标头而不是 GET 参数传递给服务器。我说,“不”,但我想我会仔细检查。

【问题讨论】:

  • 您想设置哪个标题?
  • 为什么不能使用 GET 参数?
  • 担心的是 url 空间的空间不足。我猜还必须把它们解析出来。 (我猜我们有一个自定义解析器,所以它不像 $_GET['myParam'] 那么简单。)

标签: javascript http-headers


【解决方案1】:

简短的回答:不。默认情况下,脚本标签只会检索src 属性中指定的资源。

但是,如果您使用 AJAX 请求来检索脚本(并稍后添加/执行它),您可以使用 XMLHttpRequest 对象的 setRequestHeader 函数(请参阅 http://www.developertutorials.com/learn-ajax/custom-http-headers-2643.php)。

你也可以使用更复杂的方法,比如使用mod_rewrite重写路径,并在url中包含参数。最佳解决方案取决于您想要做什么,以及您对服务器的控制程度。

【讨论】:

  • 我目前正在使用一个脚本来记录另一个脚本。我曾想过 ajax,但不是脚本标记(即获取第二个脚本的结果),而不是获取脚本本身的一种手段。我会探索的。
  • 这并不完全准确,至少关于在 GET 请求上设置标头的部分...... 可以使用 GET 请求,并且通常用于身份验证HTTPS 请求,因为标头将被加密。但是,您 正确的是,无法在脚本标记请求上设置标头,但这与 GET 请求无关。有关详细信息,请参阅xhr.setRequestHeader。希望这会有所帮助。
  • 再次阅读本文时,我在您的第二段中看到您确实解决了在 AJAX 请求上设置标头的问题,但您的第一条语句可能会让人们认为这根本不适用于 GET 请求。也许你可以把第一句话删掉,因为这样会更清楚。希望这可以帮助! :)
【解决方案2】:

没有。您需要在提供 JS 文件的服务器上设置标头。

编辑:我误解了你的意思,结果你想设置一个请求头,而不是一个响应头。据我所知,这仍然是不可能的(来自 HTML)。

【讨论】:

    猜你喜欢
    • 2011-03-05
    • 1970-01-01
    • 2017-05-27
    • 2016-05-16
    • 2010-11-13
    • 1970-01-01
    • 2020-08-03
    • 2020-05-05
    • 1970-01-01
    相关资源
    最近更新 更多