不推荐在主线程上使用同步XMLHttpRequest的另一个原因是什么?

时间:2017-09-08 19:45:02

标签: jquery ajax

我已经阅读了大量关于此的问题和答案,包括这一个JavaScript console.log causes error: "Synchronous XMLHttpRequest on the main thread is deprecated...",它有许多不同的答案,给出了不同的具体原因。但我还没有找到任何解释我为什么会在我的案例中看到它的内容,具体如下:

我访问了this页面以获取实施上传进度条的示例,并下载了demo这是一个小的.zip文件,其中只包含我放入网络根目录的3个文件:< / p>

  1. 的index.php
  2. upload.php的
  3. LoaderIcon.gif
  4. 该演示似乎按原样正常工作(除了它在提交后第二次显示表单)。但它从cdn获取jQuery,而我总是托管我在自己的网站上使用的javascript。

    所以我将https://code.jquery.com/jquery-2.1.1.min.js下载到我的网络根目录下的/js目录中,并将index.php文件中的脚本标记更改为src="/js/jquery-2.1.1.js"而不是src="https://code.jquery.com/jquery-2.1.1.min.js" }。绝对没有其他变化。

    此单个更改会触发XMLHTTPRequest警告。我已经看到的一些答案注意到ajax请求在页面的html中插入<script>标记会触发警告,但这绝对不会发生在这里。我尝试将src="/js/jquery-2.1.1.js"更改为src="http://localhost/js/jquery-2.1.1.js",但这没有用。我发现摆脱警告的唯一方法(除了试图压制它)是从不同的域加载jquery,或者在jquery-2.1.1.js标记的索引中复制粘贴<script>的内容。 PHP。

    任何人都可以解释为什么会发生这种情况,并建议在我自己的网站上托管脚本时避免问题的方法吗?

1 个答案:

答案 0 :(得分:0)

愚蠢的用户错误,我很遗憾在没有尽职调查的情况下发布问题来识别环境的所有相关部分!

Barmar非常耐心,正如我所报道的那样,他的有用评论追踪了这个问题。但事实证明我自己用.htaccess文件创建了问题。我把演示文件放到我正在研究的Zend Framework应用程序的web根目录中,不小心认为这是查看演示的最简单方法。但这使得demo的index.php成为ZF应用程序的index.php,这是.htaccess文件重定向所有不适用于现有图像文件的请求!这为重复的表单和弃用通知创建了奇怪的行为。删除.htaccess文件让演示完美无瑕。更改演示以从localhost获取jquery-2.1.1.js和jquery.form.js文件并没有引发弃用通知。

我真诚地为浪费人们的时间而道歉。我通常在描述完整的环境时更加小心,但由于这与Zend Framework无关,我省略了这个细节!