PHP - 如何设置文件中的哪些打印信息是JSON响应?

时间:2014-09-10 08:16:14

标签: php jquery json response

所以,当我发送json时,它会等待共鸣,并且所有发送的文件中发送的json都被视为响应。如何设置哪些回声/打印信息,因为还有其他东西而不是回声/确切的响应是什么?例如,我有这个代码,我想做一些别的事情,而不是在这里的共鸣: PHP:

if($_POST){
    $return="Success.";
    echo json_encode($return);
    exit;
}

jQuery的:

    $.ajax({
          url: "./index.php",
          type: "POST",
          data: { 
                example:"example",
                example2:$(".content").text()
          },
          dataType: "json"
   }).done(function(data){
          $('#response').append('<p style="color:red;">'+data+'</p>');
   }).fail(function(){
         $('#response').append('<p style="color:red;">Error</p>');
   });

3 个答案:

答案 0 :(得分:0)

默认情况下,您将获得HTTP 200 Ok响应,

在某些情况下,我发现您尝试发送错误,因此您的ajax请求会通过失败函数

你可以用PHP实现这个:

header($_SERVER['SERVER_PROTOCOL'] . ' 500 Internal Server Error', true, 500);

此致

答案 1 :(得分:0)

我不明白你的问题是什么。

但是你有一个错误,也许是因为你不会在你的javascript中获得一个json对象。

if($_POST){
    $return=array("Success.");
    echo json_encode($return);
    exit;
}

json_encode需要一个数组:)

答案 2 :(得分:0)

抱歉,但很难理解你。你觉得什么?德语? (然后写下带有德语文本的pastebin并发给我)

除了返回成功字符串之外,您还可以执行任何其他操作。 例如,将每个值写入文件,例如

在开头构建数组并在结尾返回它。 然后你可以在脚本运行时添加一些东西。

我希望有帮助:)

<强>的index.php

<?php
if($_POST)
{
    $response = array();
    foreach($_POST as $file => $content)
    {
        $response[] = 'Writed ' .  file_put_contents($file, $content) . ' bytes to file ' . $file;
    }
    if(!count($response))
    {
        header('HTTP/1.0 400 Bad Request', true, 400);
    }
    echo json_encode($response);
    exit;
}
?><html>
<head>
    <title>25760456</title>
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
    <script type="text/javascript">
        $(function()
        {
            $.ajax({
                url: "./index.php",
                type: "POST",
                data: {
                    example:"example",
                    example2:$(".content").text()
                },
                dataType: "json"
            }).done(function(data){
                $('#response').append('<p style="color:red;">'+data+'</p>');
            }).fail(function(){
                $('#response').append('<p style="color:red;">Error</p>');
            });
        });
    </script>
    <style type="text/css">
        #response {
            border: 1px solid #000;
            padding: 5px;
        }
    </style>
</head>
<body>
    <input type="text" class="content" />
    <div id="response"></div>
</body>
</html>

看起来像。

example result in chrome webbrowser