【问题标题】:.load() send data using POST in the URL.load() 在 URL 中使用 POST 发送数据
【发布时间】:2014-06-05 16:17:08
【问题描述】:

我正在使用 jquery 的 .load() 函数在页面的 div 中加载一些数据。主页是catalogue.php,在 div #catalogue-content 内,当应用了一些过滤器时,我使用 javascript 从load-products.php 加载数据。

关键是我在 url 中发送了一些 id,当我尝试在 load-products.php 中读取它时它失败了,因为 URL 太长了。我认为一种解决方案可能是使用 $_POST 方法而不是 $_GET 方法,但我已经尝试在较早的帖子中阅读它,但我没有找到 wright 解决方案。

我会帮忙,这是我的代码:

JS

var ids = '0001,0002,0003,000';
$("#catalogue-content").post('load-products.php?ids='+ids);

加载产品 PHP

$ids = $_GET['ids'];

【问题讨论】:

  • 您是否缺少 post 方法的右括号?
  • IE 中的最大查询字符串长度为 2,048 个字符,Firefox 为 65,536 个。您确定查询字符串太长吗?
  • 不,我没有错过 id @SherinMathew
  • @RoryMcCrossan 萤火虫的答案是:414 Request-URI Too Large
  • 抱歉让您感到困惑。但是当我第一次检查问题时,我看不到 post 方法的右括号和半色。它现在存在。

标签: jquery url post


【解决方案1】:

我会这样做:

var params = {
   ids : ids
 }    

$.ajax({
      type: 'POST',
      url : 'load-products.php',
      data: params,
      success: function(data) {
        // replace content of #catalogue-content with returned data
        $("#catalogue-content").html(data);
      },
      error: function() {
        alert("Some error")
      }
})

然后在你的 load-products.php 文件中使用 $_POST['ids']

希望这对您有所帮助并给您一个开始

【讨论】:

  • 萤火虫报告我一个错误:var params = { ids = ids }
  • “缺失:属性 ID 之后”
  • 抱歉,我没有对此进行测试。现在已在示例代码中修复
  • 参数你可以发送一些值
  • 恐怕我找不到让它工作的方法,但还是谢谢你。
猜你喜欢
  • 2021-05-09
  • 1970-01-01
  • 2017-07-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-14
  • 1970-01-01
相关资源
最近更新 更多