Javascript 未接收通过AJAX POST发送到PHP的值
我正在尝试我正在尝试发送我的URL字符串的特定部分到我的php文件,然后相应地填充我的页面。除了AJAX POST方法外,一切都很正常。我在PHP中尝试过对POST变量进行var_转储,但我的数组是空的(所以我知道没有任何东西可以通过) 成功确实会在传递时返回,因此我不知道数据将流向何处。我正在XAMPP上进行本地测试,我已经浏览了SoF,但在任何修复上都没有运气。我的代码如下 页面的屏幕截图: jQuery AJAX请求:Javascript 未接收通过AJAX POST发送到PHP的值,javascript,php,jquery,ajax,post,Javascript,Php,Jquery,Ajax,Post,我正在尝试我正在尝试发送我的URL字符串的特定部分到我的php文件,然后相应地填充我的页面。除了AJAX POST方法外,一切都很正常。我在PHP中尝试过对POST变量进行var_转储,但我的数组是空的(所以我知道没有任何东西可以通过) 成功确实会在传递时返回,因此我不知道数据将流向何处。我正在XAMPP上进行本地测试,我已经浏览了SoF,但在任何修复上都没有运气。我的代码如下 页面的屏幕截图: jQuery AJAX请求: $(document).ready(function() {
$(document).ready(function() {
str = window.location.href;
pos = str.search("pages/"); //42
send = str.slice(42, -5);
console.log(send);
console.log(pos);
$.ajax({
type: "POST",
url: "retrieve.php",
data: {
tom: send
},
success: function() {
$.get("retrieve.php", function(data, status) {
$("#main").html(data);
}) //ends GET function
},
error: function() {
console.log(arguments)
}
}); //ends POST request
}); //ends DOC-READY function
PHP:
echo“hello”;
回显变量转储($\u POST);
$url=$_POST['tom'];
json_解码($url);
echo$url;
试试下面的方法
另外,除非发送json请求,否则不需要对json进行解码,请确保所有post值都已传递
阿贾克斯:
PHP:
if($\u服务器['REQUEST\u METHOD']=='POST'){
//回音“你好”;
//回显变量转储($\u POST);
$url=$_POST['tom'];
json_编码($url);
echo$url;
}
您是否尝试过简化代码,以便简化基本步骤。也许试着在页面上发布一些基本的内容,看看你是否得到了预期的结果。嘿,是的,我正在创建网页,我只需要从数据库中检索数据,根据URL填充页面上的某些字段。为了确保GET请求正常工作,我让它将php文件中的数据返回到页面上,这样就可以了。这只是POST不工作。请尝试观察控制台中的POST
请求,并确保数据正在发送。如果tom
的值为null
,则可能会导致问题。@camelCase:我到底应该记录到控制台什么?我在前面的代码中用console.log(send)记录了“tom”的值;是你在看浏览器控制台吗?有错误吗?如果没有,帖子肯定发生了吗?另外,如果使用wordpress或类似工具,“results.php”通常不在运行代码的浏览器的目录中,即使javascript位于同一位置。过几天我回到办公桌时,我会尝试一下。感谢您的回答。快速问题:当您说“检查post值是否正在传递”时,您是在要求我确保“发送”变量中包含有效数据,还是在服务器端(如果我正在获取values@JustinE.Samuels我在问send变量的数据是否正确。是的,我查过了。嘿,还是没有骰子。同样的结果。这真的很奇怪,因为我已经一遍又一遍地查看JQuery文档,而且所有内容似乎都是正确的
echo "<i>hello</i>";
echo var_dump($_POST);
$url = $_POST['tom'];
json_decode($url);
echo $url;
$(document).ready(function() {
var str = window.location.href;
var pos = str.search("pages/"); //42
var send = str.slice(42, -5);
console.log(send);
console.log(pos);
$.ajax({
type: "POST",
url: "retrieve.php",
data: {
'tom': send//make sure this is not empty
},
success: function(data) {
console.log(data);
},
error: function(arguments) {
console.log(arguments)
}
}); //ends POST request
}); //ends DOC-READY function
if($_SERVER['REQUEST_METHOD'] == 'POST'){
//echo "<i>hello</i>";
//echo var_dump($_POST);
$url = $_POST['tom'];
json_encode($url);
echo $url;
}