从Rails服务器通过AJAX返回的JSON运行失败
JSON Returned From Rails Server via AJAX fails to run
我有一个简单的ajax post到服务器..
$(".invite-team-members-submit-btn").click(function() {
$.post("invite_team_member", {
token: $("#token").val(),
email: $("#email").val(),
team: $("#team").val()
},"json")
.done(function (responseText) {
alert(responseText.response);
})
.fail(function (xhr,status,message) { alert("ERROR: " + message); })
.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
我的控制台不仅告诉我我收到了一个200状态,而且我的响应包含我想要的JSON。但是,在处理解析后的JSON时,不会发出警报。请注意,我没有收到警报,甚至没有从然后的功能。是什么原因造成的呢?
这很可能是由于jQuery在成功回调之前自动为您解析json。要使其始终发生,以便您可以始终期望它,请使用:
$(".invite-team-members-submit-btn").click(function() {
$.post("invite_team_member", {
token: $("#token").val(),
email: $("#email").val(),
team: $("#team").val()
},"json")
.done(function (responseText) {
alert(responseText.response);
})
.fail(function (xhr,status,message) { alert("ERROR: " + message); })
.then(function () { alert("Something should happen."); });
});
注意第2行末尾的"json"
参数
Update在$.post()
的末尾有一个;
,使得.done
、.fail
、.then
失效。修复了上面的代码。
如果您仍然没有看到完成警报或失败警报,那么您的控制台中存在错误或单击事件没有发生。如果使用Firefox,请确保您也使用firebug。
相关文章:
- 在 JSON 更改上运行 JavaScript
- 如何将自定义脚本添加到运行javascript文件的package.json文件中
- Ajax调用在本地返回json,但在服务器上运行时返回xml
- 无法使用json数据url在android中运行实时股票图
- 当 json 给出 NetworkError: 503 禁止访问时如何运行函数
- 为什么 ajax 'application/json' 要运行 PHP 代码两次
- 运行 ajax 函数以每 3 秒检查一次 json 响应
- 在运行之前确定数据是否是新的(将数组与 JSON 进行比较)
- 使用切换来运行需要来自 GET 调用的 json 的 JS 函数
- nodeJs,运行两次sql可以将它们组合成json
- 将JSON文件导入到Grunt服务器上运行的Angular应用程序中
- .done() 函数在抓取本地 JSON 文件时未在 AJAX 调用返回的承诺上运行
- D3 javascript/json 不会运行
- 如何在复杂的 JSON 上运行 ng-repeat 或 forAngular 的每个
- 你的project.json没有;t列表'win10'作为目标运行时
- 如何对JSON文件运行javascript JSON模式
- 从package.json运行Node.js命令
- JavaScript运行时错误:无效字符(JSON.parse)
- JSON值从PHP到JQuery并运行函数
- 从Rails服务器通过AJAX返回的JSON运行失败