0

编辑:我将 post 方法更改为 get 方法,一切正常。我会进一步调查,如果我弄清楚为什么会这样,我会添加答案。我确实在其他地方使用过帖子,所以我们会看到...

我已经四处寻找这个问题的答案,但到目前为止还没有找到任何有帮助的东西。我有一个简单的表单,它使用 jquery 的 .submit 函数来序列化数据并通过 ajax 将其发布到 php 脚本。这一切在我的本地主机上都很好用,但是一旦我将它发布到服务器,字段值就不会发布。

这是表格:

<div id="loginDiv">
 <form  id="login" class="form-inline pull-right">
  <input id="loginVal" name="loginVal" type="password" class="input-small" />
   &nbsp;<button type="submit" class="btn btn-success">Log In</button>
 </form>
</div>

下面是提交函数和成功回调函数:

// ajax function to login to session
$(document).ready(function() {
 $("#login").submit(function() {
  $.post(
   "functions/sessionLogin.php",
   $("#login").serialize(),
   //{"loginVal":"CHAPMANADMIN"}, (this was just to troubleshoot)
   function(json) {
    parseReturnedLogin(json);
   }
  );
  return false;
 });
});

// login success handler
function parseReturnedLogin(data) {
 var obj = jQuery.parseJSON(data);
 $("#loginDiv").html("<p class=\"navbar-text pull-right\">Logged in as <span 
  style=\"color:#0088cc\">"+obj.priveleges+"</span></p>");
}

这是我在 localhost 上获得的一些标头和响应的示例:

请求方法:POST 状态码:200 OK

接受:/

X-Requested-With:XMLHttpRequest

表单数据:loginVal:CHAPMANADMIN

响应:{“用户”:“CHAPMANADMIN”,“priveleges”:“管理员”,“sessid”:“pvigqmcfumlbiu13esiojg1n74”}

这是我在服务器上得到的一些标头和响应的示例:

请求方法:POST 状态码:200 OK

接受:/

X-Requested-With:XMLHttpRequest

表单数据:loginVal:CHAPMANADMIN

响应:{“用户”:“”,“特权”:“”,“sessid”:“o2nf69vc2tdd8hc8n0usas4010”}

实时服务器上的查询以空值运行。我在同一台服务器上还有其他 AJAX 应用程序,它们应该使用类似的设置工作,所以我不确定发生了什么,并且希望专家提供一些建议/故障排除指导!

4

2 回答 2

0

这最终成为在我的 $_POST 变量上使用 mysql_real_escape_string 的问题。我将我的代码从 mysql 转换为 PDO 函数,但没有删除需要 mysql 连接才能工作的 mysql_real_escape_string 函数,否则它们返回 false。

当我将此代码发布到服务器时,没有活动的 mysql 连接,因此该函数返回 false 并将我的变量的值设置为 false。

希望这可以帮助将来的人摆脱同样的愚蠢错误。

于 2012-05-31T20:23:46.533 回答
0

您的表格工作正常,但响应不正确。检查服务器上的服务器验证功能以及工作正常的数据库连接!

发布您的脚本以进行进一步调查。

为了调试这些情况,我使用 firefox 和 firebug 扩展检查请求/响应。

于 2012-05-16T14:21:00.720 回答