ajaxcheck.js
var val = "hai";
$.ajax(
{
type: 'POST',
url: 'ajaxphp.php',
data: { "abc" : val },
success :function(data)
{
alert('success');
}
}
)
.done(function(data) {
alert("success :"+data.slice(0, 100));
}
)
.fail(function() {
alert("error");
}
);
ajax.html
<!DOCTYPE html >
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js">
</script>
<script type="text/javascript" src="ajaxcheck.js"></script>
<title>ajax request testing</title>
</head>
<body>
</body>
</html>
ajaxphp.php
<?php
$v_var = $_POST["abc"];
print_r($_POST);
if(isset($_POST["abc"]))
{
echo $v_var;
}
else
{
echo "Data not received";
}
?>
当我运行ajax.html文件时,我获得成功警报。但是当我运行ajaxphp.php文件时,它会显示如下通知:
undefined index abc
为什么$v_var
没有收到数据?在哪里,我错了?请帮忙。
答案 0 :(得分:0)
实际上ajaxphp.php文件用于从中接收数据 post方法,我会给出回应。
在第一种情况下,通过使用ajax post方法,它将调用ajaxphp.php文件。
在第二种情况下,您使用直接文件调用而没有任何发布数据(这是显示错误的方式)
试试这个
var val =“hai” $ .post(“ajaxphp.php”,{'abc':val} function(data){ alert(“数据加载:”+数据); });
答案 1 :(得分:0)
jQuery期望一个对象作为数据,删除双引号:
data: { abc : val }