【问题标题】:jQuery send GET and POST parameters simultaneously at AJAX requestjQuery 在 AJAX 请求中同时发送 GET 和 POST 参数
【发布时间】:2012-10-01 20:24:32
【问题描述】:

jQuery AJAX 请求如何同时发送 GET 和 POST 参数?

我正在尝试将do=ajax&id=" + ID 添加到url,但结果请求仅打磨到sss.php,没有查询字符串(获取部分)。谢谢。

$.ajax({
    url: "sss.php?do=ajax&id=" + ID ,
    type: "post",
    data: "ddd=sss",
    // callback handler that will be called on success
    success: function(response, textStatus, jqXHR){
        // log a message to the console
        console.log("Hooray, it worked!");
    },
    // callback handler that will be called on error
    error: function(jqXHR, textStatus, errorThrown){
        // log the error to the console
        console.log(
            "The following error occured: "+
            textStatus, errorThrown
        );
    }
});

【问题讨论】:

  • 尝试使用$.post而不是$.ajax
  • @defuz:出于所有意图和目的,他/她使用postpost 只是 type: "post" 请求的便捷包装器。
  • 对我来说,您的解决方案有效。它也应该对你有用。去检查您的 Chrome 网络控制台,看看向服务器发送了什么请求。
  • T.J.克劳德,我明白这一点,但据我所知,我有一个类似的例子可以正常工作,我看到的唯一区别是,我使用了方法post。也许有一些差异。这只是我的猜测,不是答案。
  • 查询字符串与get 不一起post,因为post 透明地传递所有内容,AFAIK。

标签: jquery ajax post get


【解决方案1】:

我认为您遇到了观察性错误,或者看到的是服务器端而不是 jQuery 问题。当我发帖like this:

$.ajax({
  url: "http://jsbin.com/eduzif/1?foo=bar",
  type: "post",
  data: "baz=doh",
  success: function() {
    display("Done, look at your console's network tab");
  }
});

...查询字符串和 POST 数据都发送到服务器。如果您使用 Chrome 或 Firefox 等现代浏览器并在触发帖子后查看控制台的“网络”选项卡,则很容易检查这一点。就我而言:

(您可以忽略上面的服务器回复了 403;JSBin 不允许 POST,但这不会影响我们在发送到服务器的请求中看到的内容。)

所以这里的答案是:仔细检查您是如何在服务器端获取数据的。 URL 中的参数(“GET”样式参数)可用作查询字符串参数(URL 的一部分); “POST”样式参数可用作“表单”数据(例如,响应的正文)。根据您使用的服务器端技术,通常有不同的方法来检索 GET(查询字符串)参数和 POST(表单数据/正文)参数。

【讨论】:

  • 谢谢,重新检查,复制并粘贴代码,现在看来它可以工作了。不知道我的代码的第一个版本有什么问题:(谢谢
猜你喜欢
  • 1970-01-01
  • 2015-09-07
  • 2011-12-16
  • 2015-12-07
  • 1970-01-01
  • 2015-02-11
  • 2018-04-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多