JS <script>请求是否可以设置自定义头?

10

类似这样的东西是可能的吗?

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

更新(更详细的说明):

有人问我是否有一种方法可以使用标头而不是GET参数将某些参数作为脚本请求的一部分发送到服务器进行通信。我说,“没有”,但想再确认一下。


你想设置哪个头文件? - Cameron
为什么你不能使用GET参数? - Cameron
担心的是在URL空间中用尽空间,还有必须解析它们。我猜我们有一个自定义解析器,所以不像$_GET['myParam']那么简单。 - sprugman
2个回答

6
简短回答:不行。默认情况下,脚本标记只会检索src属性中指定的资源。
但是,如果您使用 AJAX 请求来检索脚本(稍后添加/执行它),则可以使用 XMLHttpRequest 对象的 setRequestHeader 函数(请参见 http://www.developertutorials.com/learn-ajax/custom-http-headers-2643.php)。
您还可以使用更复杂的方法,例如使用 mod_rewrite 重写路径,并在 URL 中包含参数。最佳解决方案取决于您想要做什么以及您对服务器的控制程度。

我目前正在使用一个脚本来document.write另一个脚本。我曾考虑过ajax,但是不是为了获取脚本本身(即获取第二个脚本的结果),而是为了获取脚本标签。我会探索这个方法。 - sprugman
这并不完全准确,至少关于在GET请求中设置头部的部分...是可以通过GET请求实现的,并且通常用于HTTPS请求的身份验证,因为头部将被加密。但是,您是正确的,无法在脚本标记请求上设置标题,但这与它是GET请求无关。有关详细信息,请参见xhr.setRequestHeader。希望能有所帮助。 - jamesmortensen
再次阅读后,我发现在你的第二段中,你确实解决了在 AJAX 请求中设置头信息的问题,但是你的第一句话可能会让人们认为这在 GET 请求中根本不起作用。也许你可以编辑掉第一句话,这样会更清晰明了。希望能对你有所帮助! :) - jamesmortensen

1

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

编辑:我误解了您的意思,原来您想要设置请求标头而不是响应标头。据我所知,这仍然不可能(从HTML)。


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