繁体   English   中英

Javascript检测它从哪个主机加载

[英]Javascript detect which host it was loaded from

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

显然,包括脚本的用户知道他们从哪里获得的,并可以根据需要手动选择JSONP,但是为了简化操作,我想在脚本本身内检测脚本是否从同一脚本加载。主机作为包含或不包含该页面的页面。

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

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

提前致谢。

不要使用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>"

检查location.host应该可以解决问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM