0
我正在關閉文件運行JS遊戲://並嘗試向本地主機Rails服務器發出發佈請求以添加高分條目。jQuery AJAX POST on Rails偏頭痛
JS:
highScoresEntryView.keyHandlers = function() {
var that = this;
this.parent.keydown(function(event) {
event.preventDefault();
event.stopPropagation();
if(event.which == 27) {
//...
} else if (event.which == 13) {
if(that.entryString !== "") {
that.scoreObject.score.player = that.entryString;
that.submitScore(that.scoreObject);
} else {
AsteroidsUI.initializeMainMenu();
}
}
});
};
highScoresEntryView.submitScore = function() {
var that = this;
$.ajax({
type: "POST",
url: AsteroidsUI.highScoresHost, //http://localhost:3000/scores/
data: that.scoreObject,
crossDomain: true,
dataType: "json",
success: function(a, b, c) {
console.log(a);
console.log(b);
console.log(c);
alert("Congrobulations! Score sent.");
AsteroidsUI.initializeMainMenu();
},
error: function(a, b, c) {
console.log(a);
console.log(b);
console.log(c);
alert("Could not send score :(");
AsteroidsUI.initializeHighScoresEntry(that.scoreObject);
}
});
};
控制器:
def create
@score = Score.new(params[:score])
if @score.save
render :json => @score, :status => 201
else
render :json => { :errors => @score.errors.full_messages }, :status => 422
end
end
我找回狀態爲201的響應與數據庫中輸入內容,但是當我檢查的螢火響應,它出現空白, ajax請求的錯誤處理程序觸發而不是成功處理程序。我已經瀏覽了大約十幾個類似的問題,迄今爲止,還沒有任何解決方案對我有用 - 我嘗試在text,html和json之間更改dataType,結果相同。
你什麼時候發送請求?可以發佈這個'$ .ajax'被調用的整個js代碼嗎? – Andrei
你可以刪除狀態部分並嘗試嗎? – Hesham
@ H-man當狀態被刪除時,我得到了相同的結果,只有200 OK代碼。答覆是空白的。響應對象,通過的console.log所解釋,是這樣的: \t readyState的0 responseText的「」 狀態0 狀態文本「錯誤」 – Vardarac