500内部服务请求的错误使用Ajax后,JavaScript的
在javascript中我有以下几点:500内部服务请求的错误使用Ajax后,JavaScript的
var jobData = {
"SquareN": rectangle.getBounds().getNorthEast().lat,
"SquareE": rectangle.getBounds().getNorthEast().lng,
"SquareS": rectangle.getBounds().getSouthWest().lat,
"SquareW": rectangle.getBounds().getSouthWest().lng,
"SiteName": $("#jobname").val(),
"SiteType": 3,
"EstFlags": $("#numberFlags").val()
};
$.ajax({
url: "send_jobsite.php",
type: "POST",
data: {jobSite: jobData},
});
然后在我的PHP文件我做$ _ POST [“现场”],但我得到一个500内部服务错误来自POST。我不确定错误的原因是什么或如何解决它。这是我第一次尝试做ajax post发送数据到一个php服务器脚本,然后这个脚本会把这些数据发送到mysql数据库。
任何提示将是伟大的。
PHP的:
if($con->connect_errno) {
printf("Connect Failed: %s\n", $con->connect_error);
exit();
}
echo $_POST['jobSite'];
$con->close();
?>
之前我是贴到数据库,这是正确的连接,所以没有包括在第一线。
似乎你的请求的工作数据是不正确的格式。我猜你正在尝试发送JSON数据。请尝试下面的数据。 var jobData ='{“SquareN”:“ff”,“SquareE”:“dd”,“SquareS”:“aa”,“SquareW”:“bb”,“SiteName”:“ll”,“ SiteType“:3,”EstFlags“:”nn“}';
还可以在send_jobsite.php文件中查看您正在接收的输入数据。
OP绝对似乎想通过'$ _POST'作为典型的'application/x-www-form-urlencoded'来访问数据,所以我不认为使用手动创建的JSON字符串是正确的答案 – Phil
改变jobData到你的建议只是尝试,并没有得到一个错误。但试图对我的数据库执行查询以将数据插入到表中会导致错误500,因此我绝对不能这样做。 –
该问题似乎与您的data
格式有关。当您发送这样的事情(你是)
data: {foo: {
a: "a",
b: "b"
}}
jQuery将编码数据作为
foo%5Ba%5D=a&foo%5Bb%5D=b
或解码
foo[a]=a&foo[b]=b
可以通过PHP作为关联数组读,即
$foo_a = $_POST['foo']['a'];
$foo_b = $_POST['foo']['b'];
很可能,您没有正确访问$_POST
数据。你应该使用类似
$_POST['jobSite']['SquareN']
等。或者,你的JavaScript代码更改为
data: jobData,
,并通过
$_POST['SquareN']
等访问属性。
所以我有jobData作为JSON对象,然后做数据:jobData,然后在我的PHP我做$ _POST ['SquareN']但仍然得到内部服务错误。我认为这肯定是我的数据库查询将信息添加到数据库。我不确定数据库查询的正确语法,我猜想 –
@TylerDahle [没有这样的东西作为JSON对象](http://benalman.com/news/2010/03/theres-no-such-thing -as-A-JSON /) – Phil
你可以发布你的PHP脚本? –
文件send_jobsite.php中可能存在一些错误,这就是为什么你得到内部服务器错误。 –
与服务器端错误一样, **检查错误日志** – Phil