使用Ajax Post,javascript 500内部服务请求错误

时间:2016-10-17 05:44:23

标签: javascript jquery ajax post

在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 ['jobSite']但是从POST获得了500内部服务错误。我不确定错误的原因是什么或如何解决它。这是我第一次尝试将ajax发送到php服务器脚本,然后将该数据发送到mysql数据库。

任何提示都会很棒。

腓:

if($con->connect_errno) {
  printf("Connect Failed: %s\n", $con->connect_error);
  exit();
}

echo $_POST['jobSite'];

$con->close();

?>

我发布之前的第一行是与数据库的连接,这是正确的,因此没有包含。

2 个答案:

答案 0 :(得分:0)

问题似乎与您的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']

等等。

答案 1 :(得分:-1)

好像你请求的jobData格式不正确。我猜你正在尝试发送JSON数据。请尝试以下数据。

var jobData =' {" SquareN":" ff"," SquareE":" dd",&#34 ; SquareS":" aa"," SquareW":" bb"," SiteName":" ll" ," SiteType":3," EstFlags":" nn"}';

并在send_jobsite.php文件中查看您正在接收的输入数据。