ajax没有达到php方面

时间:2014-06-14 13:45:41

标签: javascript php

我想摆脱我的html表单提交并用Ajax替换它们(X M L H t p Request)。我已将表单返回值设置为" false"我写了一个小测试来测试Ajax机制。 在Java脚本端,我确实收到就绪状态4和状态200,因此发送数据显然成功,但在PHP端,变量永远不会到达。

我尝试使用POST方法以常规方式拾取它们,就像我之前收到html提交时一样,其简化形式为:

$ x = $ _POST [' x']; echo $ x;

' X'与状态4的状态200的Ajax一起发送。

任何人都可以告诉我做错了什么吗? 非常感谢。

4 个答案:

答案 0 :(得分:0)

您最有可能发布JSON数据?试试这个片段:

switch ($httpMethod) {
          case 'POST':
          $rest_json = file_get_contents("php://input");
            $jsonData = json_decode($rest_json,true);
            foreach($jsonData as $item){
                var_dump($item);
                $studentsCollection->insert($item);
            }
            $response = $studentsCollection->find();
            break;

这是来自我正在使用的一个简单的休息api。只需在没有动词切换语句的情况下将其更改为适合自己。

答案 1 :(得分:0)

也许你的ajax请求是通过GET而不是POST提交的。尝试$ _GET而不是$ _POST,或使用$ _REQUEST来覆盖你的基础。如果您不使用jQuery,我建议您使用它,使用ajax()post()等方式可以轻松实现ajax。

$('form').submit(function(e)
{
    e.preventDefault();
    $.post("test.php", $(this).serialize(), function(result) {
        console.log(result)
    });
});

答案 2 :(得分:0)

我建议检查你的ajax请求的标题(在chrome或firefox中),你可以看到你的数据是否真的传递给了PHP端。

答案 3 :(得分:0)

要找到问题,您可以使用调试工具Firebug来调试ajax请求。

使用Firebug,您可以看到ajax调用。

enter image description here

您可以看到您发送的参数。

enter image description here

您可以看到ajax请求的响应。

enter image description here

我的建议是使用Jquery为你的javascript函数。

Jquery ajax调用代码 -

           $.ajax({
                    type: 'POST',
                    url: 'ServerPageUrl.php',
                    dataType: 'json',
                    success: function(data){
                       if(data==true)
                       {                               
                           alert("OK");
                       }
                       else
                       {    
                           alert("Error save data");
                       }


                    }
                });

您可以从jQuery.ajax()

了解有关jquery ajax的更多信息

More help full page

感谢。