2016-10-17 92 views
0

在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(); 

?> 

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

+0

你可以发布你的PHP脚本? –

+0

文件send_jobsite.php中可能存在一些错误,这就是为什么你得到内部服务器错误。 –

+0

与服务器端错误一样, **检查错误日志** – Phil

回答

-1

似乎你的请求的工作数据是不正确的格式。我猜你正在尝试发送JSON数据。请尝试下面的数据。 var jobData ='{“SquareN”:“ff”,“SquareE”:“dd”,“SquareS”:“aa”,“SquareW”:“bb”,“SiteName”:“ll”,“ SiteType“:3,”EstFlags“:”nn“}';

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

+0

OP绝对似乎想通过'$ _POST'作为典型的'application/x-www-form-urlencoded'来访问数据,所以我不认为使用手动创建的JSON字符串是正确的答案 – Phil

+0

改变jobData到你的建议只是尝试,并没有得到一个错误。但试图对我的数据库执行查询以将数据插入到表中会导致错误500,因此我绝对不能这样做。 –

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

等访问属性。

+0

所以我有jobData作为JSON对象,然后做数据:jobData,然后在我的PHP我做$ _POST ['SquareN']但仍然得到内部服务错误。我认为这肯定是我的数据库查询将信息添加到数据库。我不确定数据库查询的正确语法,我猜想 –

+0

@TylerDahle [没有这样的东西作为JSON对象](http://benalman.com/news/2010/03/theres-no-such-thing -as-A-JSON /) – Phil

相关问题