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

Ajax Post的500内部服务请求错误,javascript,javascript,jquery,ajax,post,Javascript,Jquery,Ajax,Post,在javascript中,我有以下内容: var jobData = { "SquareN": rectangle.getBounds().getNorthEast().lat, "SquareE": rectangle.getBounds().getNorthEast().lng, "SquareS": rectangle.getBounds().getSouthWest().lat,

在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'],但从帖子中得到一个500内部服务错误。我不确定错误的原因是什么,也不知道如何修复它。这是我第一次尝试使用ajax post将数据发送到php服务器脚本,然后php服务器脚本将获取该数据并将其发送到mysql数据库

任何提示都很好

Php:


在我发布之前的第一行是到数据库的连接,这是正确的,所以没有包括

似乎您请求的jobData格式不正确。我猜您正在尝试发送JSON数据。请尝试以下数据

var jobData='{“SquareN”:“ff”,“square”:“dd”,“SquareS”:“aa”,“SquareW”:“bb”,“SiteName”:“ll”,“SiteType”:3,“EstFlags”:“nn”}'


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

问题似乎与您的
数据格式有关。当你发送这样的东西时(就像你现在这样)

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'];

很可能您没有正确访问
$\u POST
数据。你应该使用类似于

$_POST['jobSite']['SquareN']
或者,将JavaScript代码更改为

data: jobData,
并通过

$_POST['SquareN']

诸如此类。

你能发布你的php脚本吗?文件send_jobsite.php中可能有一些错误,这就是为什么你出现了内部服务器错误。服务器端错误总是这样;检查错误日志chrome调试工具中的错误日志是什么?它只是告诉我500内部服务错误。你的HTTP服务器错误日志,执行
send\u jobsite.php
OP的东西显然希望通过
$\u POST
以典型的
application/x-www-form-urlencoded
访问数据,因此我认为使用手动创建的JSON字符串不是正确的答案将jobData更改为您的建议只是为了尝试,没有得到错误。但是试图对我的数据库进行查询以将数据插入到表中会导致错误500,因此我一定没有这样做。因此,我将jobData作为JSON对象,然后执行data:jobData,然后在我的php中执行$_POST['SquareN'],但仍然得到内部服务错误。我认为将信息添加到数据库中肯定是我的数据库查询。我不太确定我使用的数据库查询的语法是否正确suppose@TylerDahle
data: jobData,
$_POST['SquareN']