Javascript Ajax成功未能启动

Javascript Ajax成功未能启动,javascript,jquery,ajax,Javascript,Jquery,Ajax,我在服务器上发布了一篇简单的ajax文章 $(".invite-team-members-submit-btn").click(function() { $.post("invite_team_member", { token: $("#token").val(), email: $("#email").val(), team: $("#team").val() }) .done(function (responseText) { responseText = jQuer

我在服务器上发布了一篇简单的ajax文章

$(".invite-team-members-submit-btn").click(function() {
  $.post("invite_team_member", { token: $("#token").val(), email: $("#email").val(), team: $("#team").val() })
    .done(function (responseText) {
      responseText = jQuery.parseJSON(responseText);
      alert(responseText.response);
    })
    .fail(function (data) { alert("ERROR: " + data); })
    .then(function () { alert("Something should happen."); });
});
返回的JSON如下所示

{"response":"Person has been invited."}
Response Headers
  Cache-Control max-age=0, private, must-revalidate
  Connection    close
  Content-Type  application/json; charset=utf-8
  Date  Wed, 22 May 2013 21:45:07 GMT
  Etag  "e5b5e12acbcc78372b2a861027b66c05"
  Status    200 OK
  Transfer-Encoding chunked
  X-Request-Id  d835ce021eff7733d67ebfcdd468bdf2
  X-Runtime 0.007909
  x-ua-compatible   IE=Edge
控制台中的响应标题如下所示

{"response":"Person has been invited."}
Response Headers
  Cache-Control max-age=0, private, must-revalidate
  Connection    close
  Content-Type  application/json; charset=utf-8
  Date  Wed, 22 May 2013 21:45:07 GMT
  Etag  "e5b5e12acbcc78372b2a861027b66c05"
  Status    200 OK
  Transfer-Encoding chunked
  X-Request-Id  d835ce021eff7733d67ebfcdd468bdf2
  X-Runtime 0.007909
  x-ua-compatible   IE=Edge
在我的控制台中,我看到它访问了服务器并返回了相应的文本,但我的浏览器中没有收到警报。我只是不知道发生了什么事。jQuery是否更新了我缺少的内容?

您使用不正确。您的意思是使用$.ajax并指定type:post属性

$.post的第一个参数是URL。在你的情况下,它是一个对象。我认为jQuery最终可能会使用当前页面URL发出请求,这就是为什么您会看到一个请求,但我不能确定。您可以将其改写为:

$.post("invite_team_member", {data: data})
    .done(function (responseText) { alert(responseText); })
    .fail(function (data) { alert("ERROR: " + data); });
你使用不正确。您的意思是使用$.ajax并指定type:post属性

$.post的第一个参数是URL。在你的情况下,它是一个对象。我认为jQuery最终可能会使用当前页面URL发出请求,这就是为什么您会看到一个请求,但我不能确定。您可以将其改写为:

$.post("invite_team_member", {data: data})
    .done(function (responseText) { alert(responseText); })
    .fail(function (data) { alert("ERROR: " + data); });
使用$.ajax然后将类型设置为POST

使用$.ajax然后将类型设置为POST

尝试以下代码:

mydata = "name=Jon&location=USA";   
$.ajax({
    type : 'POST',
    url :  'myphp.php',
    data : mydata               
}).done(function(msg){
    alert("DONE");
});
请尝试以下代码:

mydata = "name=Jon&location=USA";   
$.ajax({
    type : 'POST',
    url :  'myphp.php',
    data : mydata               
}).done(function(msg){
    alert("DONE");
});


我更新了代码以匹配您的答案,但仍然没有收到警报。也许这毕竟是一个后端问题。@jason328如果您没有收到.fail警报,那么我想这意味着请求甚至没有运行。如果添加一个。然后添加一个警报呢?还是一样,没有警报。如果什么都没有运行,我如何从控制台日志中得到响应,告诉我我向服务器发送了正确的请求?我仔细检查了一遍,我的服务器运行正常。@jason328您在JavaScript中有任何语法错误吗?你能在jsfiddle.net上建立一个例子吗?是否从服务器返回JSON或设置内容类型:application/JSON标头?否,无语法错误。我将尝试向JSFIDLE发布一些内容。我只回短信。不过我可以试试json。我只是觉得呈现文本要比json容易得多。我更新了我的代码以匹配你的答案,但我仍然没有收到警报。也许这毕竟是一个后端问题。@jason328如果您没有收到.fail警报,那么我想这意味着请求甚至没有运行。如果添加一个。然后添加一个警报呢?还是一样,没有警报。如果什么都没有运行,我如何从控制台日志中得到响应,告诉我我向服务器发送了正确的请求?我仔细检查了一遍,我的服务器运行正常。@jason328您在JavaScript中有任何语法错误吗?你能在jsfiddle.net上建立一个例子吗?是否从服务器返回JSON或设置内容类型:application/JSON标头?否,无语法错误。我将尝试向JSFIDLE发布一些内容。我只回短信。不过我可以试试json。我只是觉得呈现文本要比呈现json容易得多。这样做了,结果仍然相同,没有警报。这样做了,结果仍然相同,没有警报。尝试在firefox上打开firebug。检查是否有有效的响应。这样做了,并在我的回答中发布了详细信息。您可以发布我们建议的ajax代码吗?我使用的是爆炸药丸代码,这在我的代码和我的回答中都有。我觉得这对于调试来说是令人满意的。试着在firefox上打开firebug。检查是否有有效的响应。这样做了,并在我的回答中发布了详细信息。您可以发布我们建议的ajax代码吗?我使用的是爆炸药丸代码,这在我的代码和我的回答中都有。我觉得这对于调试来说是令人满意的。