我很难弄清楚这个问题。似乎无论我尝试什么,PHP 总是最终返回一个空数组。这是我的主文件(index.php)的代码:
<script language="javascript" type="text/javascript">
$(document).ready(function(){
$(".ajaxlink").click(function() {
callServer();
return false; //Stop link from redirecting
});
});
var test = { "testName": "testValue" }
var testJSON = JSON.stringify(test);
function updatePage(data) {
document.getElementById("testDiv").innerHTML = data;
}
function callServer() {
$.ajax({
type: "POST",
url: "ajax/server.php",
data: testJSON,
success: function(data) {
updatePage(data);
},
//Upon error, output message containing a little info on what went wrong
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert('An Ajax error occured\ntextStatus = ' + textStatus + '\nerrorThrown = ' + errorThrown + '\nstatus = ' + XMLHttpRequest.status);
}
});
}
</script>
<div id="testDiv">Something here</div>
<a href="test1.htm" class="ajaxlink">Link!</a> <br>
当您单击“链接!”时,这基本上会运行 callServer() 函数。然后,它将测试 json 数据,即 { "testName": "testValue" } 发送到 server.php。 Firebug 报告 json 数据确实已发送到 server.php。
我的 server.php 看起来像这样:
<?php
print_r($_POST);
?>
这会在 testDiv 中返回以下内容:
Array
(
)
.ajax 函数中的数据类型未定义,因此无论 server.php 文件输出什么,它都应该是可读的。所有必需的库(json、jquery)也包含在我的文档中。我在 Apache 2.2 和 PHP 5.3.1 上运行它,但它在我的网络服务器(这是数千个网站的主机)上显示相同的内容。请求标头中使用的内容类型是“application/x-www-form-urlencoded”; charset=UTF-8' 这样应该可以正常工作。
谢谢你的时间。
此致
索伦
我认为您以错误的方式发送数据。要么你发送一个像这样的字符串testName=testValue
或者您将值分配给test
直接到data
的参数.ajax()
并且不要使用stringify
method.
因为,如果你使用stringify
,实际发送的数据将是(我假设,我在这里不确定):
'{ "testName": "testValue" }'
但这不是有效的参数字符串。
应该是有形式的
'testName=testValue'
So use test
直接地,.ajax() http://api.jquery.com/jQuery.ajax/会将对象转换为适当的字符串:
function callServer() {
$.ajax({
type: "POST",
url: "ajax/server.php",
data: test,
success: function(data) {
updatePage(data);
},
//Upon error, output message containing a little info on what went wrong
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert('An Ajax error occured\ntextStatus = ' + textStatus + '\nerrorThrown = ' + errorThrown + '\nstatus = ' + XMLHttpRequest.status);
}
});
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)