【问题标题】:$.post is not working in combination with $J = jQuery.noConflict();$.post 不能与 $J = jQuery.noConflict(); 结合使用
【发布时间】:2015-07-11 09:32:15
【问题描述】:

我在将数据从 javascript 发布到 php 时遇到问题。我使用的是 $.post 方法,但由于与 wordpress 的冲突,我也使用 $J = jQuery.noConflict()。

因此,我在 javascript 中有以下内容:

$J = jQuery.noConflict()
x=1
$J.post('/the directory',{x: x}, function(data){
});
alert($J.cookie("y"));

在php中我有:

if(isset($_POST['x']))
{
setcookie("y", 1);
}
else{
setcookie("y", -1);
}

每次看到y = -1,说明php中没有找到x。我做错了什么?

到目前为止我尝试了什么,但都没有奏效:

将帖子连接到不同的事件(按下提交时,或加载页面时)

将警报 ($J.cookie("y")) 放在函数(数据)后面的括号之间

尝试删除 $ 之后的 J 或在 php 中预先添加它们

我有点怕帖子的问题是因为我添加了$J = jQuery.noConflict()。虽然我使用了许多其他功能,然后我没有任何问题,但您可能知道解决方案还是可以帮助我走向正确的方向?提前致谢!

【问题讨论】:

  • 仅供参考,但您是否阅读过 Codex part 关于如何在 Wordpress 中使用 jQuery 的内容?
  • 您为什么怀疑问题出在noConflict() 和别名上?使用相同参数的jQuery.post() 请求是否成功?
  • 嗨乔纳森,我怀疑这是因为这对我来说是一个未知的领域。在此旁边,我检查了多种可能性。该帖子不起作用,我能想象的唯一原因是与 noconflict 属性发生冲突,但我问了问题,因为我不知道。除此之外,我还添加了许多脚本来处理所有无冲突的论据/调整..

标签: javascript php jquery wordpress post


【解决方案1】:

整个前提是错误的,cookie 是随每个请求发送的 HTTP 标头的一部分,要接收新的 cookie,您必须接收新的标头,这需要页面加载。

您不能执行 ajax 请求并在服务器上设置 cookie,然后期望它可以在客户端的 javascript 中访问,而无需实际重新加载页面并接收包含该 cookie 的新标头和修改标头。

【讨论】:

  • 好的,我明白了,但我不确定如何解决我的问题。我有一个最后提交的表格。然后页面加载,我将访问者重定向回同一页面。在这一刻(此页面加载),我希望 php 获取数据,处理数据并将信息带回我想要显示的 javascript。现在我将帖子连接到这个提交时刻,但它不起作用,您将如何解决这个问题?
  • 您可以使用 ajax 来回发送数据,这就是它的用途。 Cookie 用于跨页面加载和会话存储持久数据。
  • 好的,但是在这里它在发布的那一刻出错了,因为 x 无法识别,而 cookie 确实有效(我得到了 -1)。你将如何解决这个帖子问题?
  • 我不知道为什么不设置$_POST['x'],发布的代码看起来很好,假设URL是正确的并且数据是真的发送的。
  • 是的,如果我深入研究,帖子似乎是问题,我还没有解决.. 无论如何感谢您的帮助!
猜你喜欢
  • 2022-01-09
  • 1970-01-01
  • 2015-12-25
  • 1970-01-01
  • 2022-12-18
  • 1970-01-01
  • 1970-01-01
  • 2021-06-03
  • 1970-01-01
相关资源
最近更新 更多