我有一個問題,我不明白我的代碼。 在我的項目我已經包含下面這個功能的外部js文件:阿賈克斯方法的帖子不工作
function setFeedback(voto, id) {
var str = '{"voto":'+voto+',"idcorso":'+id+'}';
var obj = JSON.parse(str);
$.ajax({
url: 'feed.php',
method: 'POST',
data: obj,
contentType: "application/json; charset=utf-8",
dataType: 'json',
success: function() {
$("#vota").hide("slow", function() {
alert("Grazie per aver votato il corso" + voto + id);
});
},
error: function(){
alert("Chiamata fallita, si prega di riprovare...");
}
});
}
應該通過郵局「博託」和「身份證」發送。 我feed.php文件非常簡單:
<?php
session_start();
require_once('lib/DBhelper');
require_once('lib/Course.php');
if(isset($_POST['voto']) and isset($_POST['idcorso'])){
$voto = $_POST['voto'];
$course = new CourseManager($_POST['idcorso']);
$course->rateCourse($voto, $_SESSION['autenticato']);
}
和rateCourse是如DB一個簡單的插入方法:
插入到反饋設定ID = $ ID ......
所以我嘗試了很多方法,但函數總是返回錯誤函數。只有當我不寫'dataType:'json'時,它纔會成功返回,但沒有任何數據寫入db。 我能不明白的地方是錯誤的,如果JSON是錯誤的或任何其他人......
感謝您的幫助和對不起我的可怕的英語:)
我試圖
function setFeedback(voto, id) {
var obj = { 'voto': voto, 'idcorso': id };
$.ajax({
url: 'feed.php',
method: 'POST',
data: obj,
dataType: 'json',
success: function() {
$("#vota").hide("slow", function() {
alert("Grazie per aver votato il corso" + voto + id);
});
},
error: function(){
alert("Chiamata fallita, si prega di riprovare...");
}
});
}
和PHP文件
<?php
session_start();
echo 'va male';
require_once('lib/DBhelper');
require_once('lib/Course.php');
$postdata = json_decode(file_get_contents("php://input"), true);
$id = $postdata['idcorso'];
$voto = $postdata['voto'];
$course = new CourseManager($id);
$course->rateCourse($voto, $_SESSION['autenticato']);
}
,而我使用的dataType = 'JSON' 我得到的ER ror的消息,所以我不認爲這個問題是在POST數據,但在連接。 如果我不寫數據類型成功函數被調用,但沒有寫入數據庫。
實際的錯誤是什麼? AJAX請求是否完成,如果有的話,服務器的響應是什麼? – David 2014-09-10 19:50:24