我刚刚开始使用 Ajax 和 httpRequest。当我玩弄代码时,我注意到 $.get 工作正常,但 $.post 不起作用。这是我的代码:
$(document).ready(function() {
$.post('hello.txt', function(data) {
alert(data);
}).fail(function() {
alert('fail');
});
});
它总是让我失败,我无法弄清楚。 谢谢
最佳答案
Barmar 的评论是正确的,但为了找到答案,让我们回顾一下这些函数正在做什么。
当您使用 jQuery AJAX 方法时,它们会对您在该函数的 url
参数中提供的资源执行 HTTP 请求。只要该值是位于您的服务器(端点)上的东西,该函数就会命中它。
$.get()
执行 HTTP GET 操作,这就是我们通过 HTTP 获取数据的方式。在您的示例中,您将 hello.txt
指定为 url
,只要该文件位于您的服务器上,应用程序就会向该资源发出 GET 请求。如果找到,则返回该资源的内容。这可以通过文本文件、JSON 负载、HTML 网页等来完成。只要资源具有可返回内容,它就会返回该内容。
$.post()
执行 HTTP POST 操作,将数据发送到要处理的资源。 POST 操作的目的不是获取资源的数据,而是将数据推送到其中。按照规范,您可以使用 POST 使用推送到资源的数据来创建某些内容(与用于修改的 PUT 和用于删除的 DELETE 不同,但这超出了此答案)。
因此,GET 之所以有效,是因为该操作旨在获取数据,并且您提供的资源有要返回的数据。 POST 失败,因为它旨在将数据提供给资源进行处理,而您的文本文件不具备处理该资源的能力。
希望这能让我们稍微了解一下这个问题。
关于javascript - jquery $.post 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49567376/