【问题标题】:Jquery ajax request fails on chromeJquery ajax 请求在 Chrome 上失败
【发布时间】:2011-06-24 13:24:49
【问题描述】:

我必须向 PHP 文件发出 ajax 请求以更新数据库。当我单击链接时,应该调用 PHP 文件。这是我使用的 jquery 代码:

$("a#email_contatti").click(function(){
   $.get("/segna_mail.php",{sito:'mywebsite'});
});

它在 Firefox 4/5 和 Safari 上运行良好..但 Chrome(v14.0.797.0 但在其他版本上也不起作用)似乎削减了请求并且它不更新数据库..我也试过通过 url 访问 PHP 脚本,它在 Chrome 上也可以正常工作。 有人告诉我在函数末尾添加 return false 。也试过这个,但它破坏了链接(它是一个 mailto 链接)。我没有更多的想法..

谢谢,安德里亚

【问题讨论】:

  • 我遇到了同样的问题。我不得不使用 POST 而不是 get 来修复它。似乎是 chrome 中的错误
  • 这是在你的机器上本地运行的吗?
  • Chrome 有非常严格的跨域限制。你在同一个域上调用 segna_mail.php,你的 javascript 运行在上面吗?
  • @Joe 也尝试使用 $.post..nothing @Decad 它在 Web 服务器上运行 @pex 是的,它来自同一个域 谢谢大家:)

标签: jquery ajax google-chrome


【解决方案1】:

GET 用于执行检索数据的操作,POST 用于将数据发送到服务器(并且很可能对它进行一些操作,例如数据库INSERT)。所以我想 Chrome 可能会切断/不发送您提供的 JSON 数据。

根据我对您正在尝试做的事情的看法,无论如何,您最好使用POST。试试看是否可行。

如果您真的想尝试使用GET,请尝试使用$.get('/segna_mail.php?sito=mywebsite')

【讨论】:

  • 我已经尝试过发布。 “segna_mail.php”脚本必须更新数据库记录。这是我使用的代码..(与之前相同,但有帖子:-))$("a#email_contatti").click(function(){$.post("/segna_mail.php",{sito:'produzione.sviluppa.it'});});
  • 嗯,你的语法绝对正确。但根据经验,您可能希望传入类似于查询字符串(或被.serialize() 函数丢弃的)的数据字符串。这让它为我的 Chrome 工作。除此之外,也许你可以用低级的$.ajax() 函数来试试,看看有什么不同?
  • 嗯..我可以尝试使用 $.ajax,但我已经读到它给出了同样的问题..我被困在这里! :-(
猜你喜欢
  • 1970-01-01
  • 2013-12-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多