AJAX请求无法在内部服务器上运行

时间:2014-06-03 04:46:18

标签: javascript jquery ajax

我正在使用w3schools试图了解简单的AJAX请求是如何工作的,我遇到了这个练习页面:

http://www.w3schools.com/jquery/tryit.asp?filename=tryjquery_ajax_load

我认为这是一个简单的ajax请求示例,因此我将代码复制并粘贴到一个简单的ajax.htm文件中,然后复制并粘贴它引用的txt文件:

http://www.w3schools.com/jquery/demo_test.txt

...并将其保存为它引用的demo_test.txt文件并将它们保存在同一文件夹中。 (请记住,我有一台Apache服务器在本地处理PHP没有问题,所以我认为这样的简单请求可以在我的本地机器上运行。)

然而,当我在本地点击按钮时,我什么都没得到。然后,当我将文件上传到不同的服务器(“网络主机”)时,它会突然运行。

所以,这适用于webhost,它适用于w3schools,但它在我的根文件夹中的本地机器上无法正常工作(php工作没有问题)。

我宁愿不必上传我的代码,然后才能测试它是否有效,并且宁愿能够在本地处理所有内容,就像我使用PHP一样。是可以在本地执行此操作还是仅可以从我的Web主机远程发出这些请求?

为什么我的机器没有处理此代码?任何帮助,将不胜感激。感谢。

1 个答案:

答案 0 :(得分:1)

您可能无法在本地加载文件的原因有很多,但大多数原因都与您提供文件的方式有关。如果您使用的是file://,那么您将遇到问题;你说你有一台Apache服务器,但是没有提到你是否真的在服务这个网站。

您是否检查过以确保通过AJAX调用加载的路由实际上是否正确加载?例如。如果ajax文件位于您的Web根目录(http://local.site/ajax.html),那么您的txt文件(http://local.site/demo_test.txt)也是如此。

在这种情况下,您还可以随时检查浏览器的Javascript控制台,看看是否有任何错误或文件是否实际正确加载。根据您提供和访问各种文件的方式,您可能也会获得CORS errors

最简单的解决方案是确保您在本地网络服务器(您的Apache)上运行,而不是直接查看文件。