我想將我的網頁轉換爲ajax,但我不能讓它返回任何東西。無法讓jQuery ajax工作
HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>test page</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
<!--
$(document).ready(function(){
// events
$("#test").click(function(){
var myData;
myData = makeDataVar();
sendData(myData);
});
// functions
function makeDataVar(){
return "name=joe&location=bostin";
}
function sendData(myData){
alert("start mydata function");
$.ajax({
type: "POST",
url: "http://www.mypage.com/submitMe.php",
dataType : "json",
data: myData,
success: function (msg) {
alert("Data saved: " + nameMsg);
alert("Data saved: " + locationMsg);
alert("data saved: " + error);
},
error : function(XMLHttpRequest, textStatus, errorThrown) {
alert("error " + errorThrown);
}
});
alert("end mydata function");
}
}); // end document.ready
//-->
</script>
</head>
<body>
<button type="button" id="test" >Add New</button>
</body>
</html>
PHP
<?php
$myVar = $_POST['name'];
$return['nameMsg'] = "thanks $myVar";
$myVar = $_POST['location'];
$return['locationMsg'] = "from $myVar";
$return['error'] = false;
echo json_encode($return);
?>
我讓所有我的javascript警報除了那些阿賈克斯聲明(無論成功或錯誤)內。這幾乎就像我的腳本跳過那一個聲明。我不確定我在這裏錯過了什麼,但我花了幾個小時試圖弄清楚。任何幫助你可以提供將不勝感激。
'type'應該是小寫字母,儘管我不確定這是您的唯一問題。 – 2011-05-25 00:36:38
成功回調僅在服務器返回成功的2xx代碼時調用。你確定你的服務器沒有拋出任何錯誤嗎? – scurker 2011-05-25 00:39:36
@scurker - 他會得到錯誤狀態。我知道的唯一情況是他是否試圖在沒有jsonp的情況下跨域執行某些操作。 XHR在那時就消失了。 – 2011-05-25 00:43:41