2

我有一个我正在开发的 Javascript 库。它可以自托管或从另一台服务器运行。该脚本进行了许多 AJAX 调用,首选方法是向包含页面的同一主机发出 POST 请求。为了允许跨域调用,它还支持 JSONP,但这限制了可以发送的数据量(大约 2K 以安全地适应大多数现代浏览器的 URL 长度限制)。

显然,包括脚本的用户知道他们从哪里获取它,并且可以根据需要手动选择 JSONP,但为了简化事情,我想在脚本本身中检测脚本是否是从相同的主机作为页面是否包含它。

我可以使用 jQuery 获取脚本元素,但执行 $('script').attr('src') 只会返回相对路径(例如“/js/my-script.js”而不是“ http:// /hostname.com/js/my-script.js "),即使它是从不同的主机加载的。

这可能吗?如果可以,我将如何处理?

提前致谢。

4

2 回答 2

3

不要使用 JSONP,使用 CORS 标头。

但如果你真的想做 JS 检查,请使用var t = $('script')[0].outerHTML.

在我的页面上的效果: [20:43:34.865] "<script src="http://www.google-analytics.com/ga.js" async="" type="text/javascript"></script>"

于 2013-10-19T18:44:49.190 回答
-2

Checking location.host should do the trick.

于 2013-10-19T18:26:41.663 回答