我想将我的网页转换为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