js”;脚本”;为XMLHttpRequest调用预先设置的文件夹名称
js "scripts" folder name prepended to XMLHttpRequest calls
我在Web服务器的"scripts"文件夹中有一个名为myscripts.js的javascript文件。它可以通过以下方式访问:
http://www.example.com/scripts/myscripts.js
myscripts.js中有一个javascript函数,它对我的网站的somemethod.html进行XMLHttpRequest调用。这是呼叫代码:
xmlhttp.open("GET","somemethod.html",false);
99%的时间一切都很好。但我发现一些浏览器正在为调用准备"scripts/"。结果是这样的调用:
http://www.example.com/scripts/somemethod.html
什么时候应该是这样的:
http://www.example.com/somemethod.html
这是一个自定义的Web服务器(即,我基本上处理所有请求)。
- 我的网络服务器应该能够处理这个问题吗?或者这只是一个我不应该担心的侥幸浏览器
我不应该在javascript中使用"相对"路径吗?而是在java脚本中使用绝对调用?例如:它应该像这样编码:,而不是"somemethod.html"
xmlhttp.open("GET"http://www.example.com/somemethod.html",false);
在JavaScript中使用相对路径是绝对好的(绝大多数是实践标准),只需注意它们与的相对关系即可:您在其中包含JavaScript的文档(而不是JavaScript文件)。您似乎对此很清楚,但只是强调而已。
我从未见过浏览器出现这种错误。你看到的请求可能来自一个写得不好的网络爬虫,它在查看JavaScript的来源,而不是做一些智能的事情,比如弄清楚它在哪里/如何运行。
不过,只是为了清楚起见,关于相对的事情(更多的是为了潜伏者而不是你):
给定这种结构:
foo.htmlindex.htmljs/script.js
在该结构中,如果在index.html
:中包含script.js
<script src="js/script.js"></script>
然后使用该脚本文件中的代码执行XHR调用,该调用将相对于正常运行的浏览器上的index.html
,而不是script.js
。
我从不使用相对请求,我构建了自己的url,并使用js代码来构建和传递url,使用"toString"方法来提供我所需的url。
顺便说一句,尽量不要再使用同步XHR调用,理想情况下应该使用异步和回调,这很痛苦,但这是最好的。
client . open(method, url [, async = true [, username = null [, password = null]]])
Sets the request method, request URL, and synchronous flag.
Throws a "SyntaxError" exception if either method is not a valid HTTP method or url cannot be parsed.
Throws a "SecurityError" exception if method is a case-insensitive match for `CONNECT`, `TRACE` or `TRACK`.
Throws an "InvalidAccessError" exception if async is false, the JavaScript global environment is a document environment, and either the timeout attribute is not zero, the withCredentials attribute is true, or the responseType attribute is not the empty string.
来源:http://xhr.spec.whatwg.org/#the-打开%28%29方法
- 如何在android中使用phonegap将文件从一个文件夹移动/复制到另一个文件夹
- 如何将乳胶配方奶粉图像保存到Asp.net中的文件夹中
- 展开和折叠文件夹
- 在ng重复循环中显示来自不同文件夹的图像
- 如何将所有JS文件连接到一个文件夹中
- 是否可以用JavaScript显示等效的文件夹对话框
- 如何在ExtJs4应用程序上为视图、存储和模型设置自定义文件夹名称
- 如何设置观察程序将文件复制到同一文件夹中的其他文件
- 想要在flowFactoryProvider配置中设置动态文件夹名称,将其传递到upload.php文件,以将上传的文件
- 如何为 After Effects 设置文件夹以监视 JSON/文本文件
- 如何从路由文件中的子文件夹设置控制器文件
- 如何在没有服务器的情况下运行 HTML 时将文件夹设置为根路径
- 分别设置输出文件夹和文件 url;带有 Django 的 Webpack 文件加载器
- Grunt在Grunt+Sass设置中创建.tmp文件夹
- js”;脚本”;为XMLHttpRequest调用预先设置的文件夹名称
- 设置驱动器文件夹位置为动态创建的谷歌表单
- 设置背景图片与大小和不重复从文件夹中的随机图像
- Angular-如何在文件夹中随机选择一个图像来设置背景
- 使用 jquery 脚本页面从当前文件夹设置 CSS 图像
- 如何从服务器上的文件夹中设置图像SRC并使用JavaScript,C#制作幻灯片