link_to 和 form 相关的 helper 加上 remote: true 选项后,在返回正常的情况下捕捉不到 ajax:success 事件,但可以捕捉 ajax:complete。
这个问题怎么解决呢?
#1 楼 @guyanbiao 是返回 json 数据 #2 楼 @Rei 能触发 ajax:error,但 event 和 status 对象貌似都正常
Object {readyState: 4, getResponseHeader: function, getAllResponseHeaders: function, setRequestHeader: function, overrideMimeType: function…}
abort: function ( statusText ) {
always: function () {
complete: function () {
done: function () {
error: function () {
fail: function () {
getAllResponseHeaders: function () {
getResponseHeader: function ( key ) {
overrideMimeType: function ( type ) {
pipe: function ( /* fnDone, fnFail, fnProgress */ ) {
progress: function () {
promise: function ( obj ) {
readyState: 4
responseText: "{"succeed":true}"
setRequestHeader: function ( name, value ) {
state: function () {
status: 200
statusCode: function ( map ) {
statusText: "OK"
success: function () {
then: function ( /* fnDone, fnFail, fnProgress */ ) {
__proto__: Object
可以通过绑定 ajax:complete 来实现 ajax:success
$dom.on('ajax:complete',function(ex,e){
if(e.status == 200 && $.parseJSON(e.responseText).succeed){
//do something
}else{
alert("failed");
}
});
挖个坟,因为我也遇到这个问题,总结一下:
text
json
(当然这种情况你设成 text
也可以的啦,只不过 rails_ujs 不会帮你解析 JSON 啦)