javascript - jquery $.post 不起作用

标签 javascript jquery ajax

我刚刚开始使用 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/

相关文章:

javascript - 无法回显 .load 函数

javascript - location.href 中的 URL 缺少 searchParams

javascript - 使用 FlightJS 的事件流不正确

javascript - 动态加载 html 后 jquery 自动完成功能不起作用

javascript - $.ajax 与 $.post : getting allow origin error

javascript - 使用 .replace() 将句点更改为下划线

javascript - 刚接触JS,想要显示字符串

javascript - 使用jquery动态生成表单元素

javascript - keydown 事件是如何工作的?

javascript - 当事件处理程序附加到父 HTML 元素时,如何防止默认事件操作?