任何托管版本的jQuery都设置了"Access-Control-Allow-Origin:*"标头?

Gre*_*ray 7 jquery same-origin-policy

我最近一直在使用jQuery并遇到一个问题,我无法将其包含在用户脚本中,因为XmlHttpRequest使用相同的源策略.经过进一步测试后,我发现大多数浏览器还支持W3C定义的跨源资源共享访问控制,作为同源策略问题的解决方法.我通过在包含Access-Control-Allow-Origin: *http标头的本地Web服务器上托管jQuery脚本来测试这一点,该标头允许使用XmlHttpRequest下载脚本,以便它可以包含在我的用户脚本中.我想在发布脚本时使用托管版本的jQuery,但到目前为止使用http://www.seoconsultants.com/tools/headers等工具进行测试我还没有发现任何允许跨域访问的网站jQuery脚本.这是我到目前为止测试的列表:

是否有任何其他托管版本的jQuery允许跨源访问?我知道,jQuery的通常是通过脚本标签(有时是动态创建的脚本标签)加载,但在这个特定的情况下,我不得不使用XMLHttpRequest和eval,以确保它被装载到正确的范围.谷歌Chrome浏览器支持用户脚本,但不支持@require,这意味着使用的唯一途径,在谷歌浏览器用户脚本jQuery的是将它嵌入到.user.js文件或负载并通过的XmlHttpRequest EVAL它.嵌入是一个不太理想的解决方案,虽然Chrome扩展程序允许您将jQuery js文件包含在扩展中,但我更喜欢使用用户脚本,因为它们更简单,并且可以在多个浏览器中运行.我已经提交了Google Ajax APIjQuery团队的门票,允许跨域访问CDN,但我的猜测是我现在必须自己托管它.

hla*_*les 2

自从您提出这个问题以来,Google CDN 已根据要求添加了这些标头。快速获取https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js会产生标头:

access-control-allow-origin:*
Run Code Online (Sandbox Code Playgroud)

添加一个像这样的脚本标签就可以了:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js" crossorigin="anonymous" type="text/javascript"></script>
Run Code Online (Sandbox Code Playgroud)