为何AJAX无法通过POST将HTML(JS部分)的name值传递到PHP文件?
问题解决:Uncaught ReferenceError: $ is not defined 及代码优化
核心问题:未引入jQuery库
你代码里用的$.ajax是jQuery提供的方法,但页面根本没加载jQuery库,浏览器识别不了$这个符号,所以才会报Uncaught ReferenceError: $ is not defined。解决这个问题的关键是先引入jQuery,再写业务脚本。
其他需要修复的问题
- HTML结构错误:原代码把
<head>标签放到了<body>标签里面,不符合HTML规范,需要调整位置。 - PHP语法错误:PHP代码最后多了一个多余的
},会导致服务器端语法错误,必须删除。
修改后的完整代码
HTML/JS代码
<html> <head> <!-- 先引入jQuery库 --> <script src="https://code.jquery.com/jquery-3.7.1.min.js"></script> <script type="text/javascript"> const name = "asdasd"; $.ajax({ url: "TargetFile.php", method: "POST", data: { name }, success: function (result) { alert(result); }, error: function (error) { alert("Error " + error.status); } }) </script> </head> <body> </body> </html>
PHP代码
<?php $name = $_POST['name']; if (empty($name)) { echo "Name is empty"; } else { echo $name; } ?>
额外说明
- 如果你不想用CDN引入jQuery,也可以下载jQuery本地文件,把
src属性改成本地文件路径即可。 - 测试时要确保
TargetFile.php和HTML文件在同一目录下,或者调整url参数的路径指向正确的PHP文件。
内容的提问来源于stack exchange,提问作者Mirek6
相关产品推荐
相关产品推荐

