0

これがポストメソッドアクションとしての私の link_handler.php です。

require_once 'download_handler.php';

if ($_POST) {

    if (empty($_POST['link'])) {
        $mahar['success'] = false;
        $mahar['error'] = "you're not insert any link";
        echo json_encode($mahar); //work, show error string on #success
        exit();
    }

    $download = new Hijack($_POST['link']);
    $download->check_link();
    $download->execute();
    $mahar['success'] = $download->result['success']; // produce success(bool) = false
    $mahar['error'] = $download->result['error']; // produce error string : there's some error on parsing some stuff
    echo json_encode($mahar); //not work show nothing on #success
}

これは私のjquery構文です

$(document).ready(function() {
    $("#go").click(function() {
    $("#success").fadeOut();
        $.post('link_handler.php', {link: $("#url").val()},
        function(mahar) {
            if (mahar.success) {
                $("#success").html(mahar.link);
            } else {
                $("#success").html(mahar.error);
            }
        }, 'json');
        return false;
    })
});

ここで何が起こったのか誰か説明できますか?

ここでajaxを学んでいます。

4

2 に答える 2

0

最も可能性の高いシナリオは、出力が JSON (のみ) ではないということです。

次のステートメントを検討してください。

$download = new Hijack($_POST['link']);
$download->check_link();
$download->execute();
$mahar['success'] = $download->result['success'];
$mahar['error'] = $download->result['error'];

これらのステートメントのいずれかが、JSON 構文を混乱させる警告または通知を生成する可能性があります。これを確認するには、ブラウザのネットワーク タブを調べて、応答の内容を探します。

コードが生成する可能性のあるすべての警告を解決する必要があります。代わりに警告のログを調べることもできます。

于 2013-04-08T05:05:07.020 に答える
0

その2点を試してみてください..

1位。$_post リンクの場合、ドメインなしでフルパスを設定します

http://mydomain.com/link_handler.php - '/link_handler.php' を入力

http://mydomain.com/something/link_handler.php - '/something/link_handler.php' を入力

2番目。link_handler.php の最初の行に次のように入力します。

exit(json_encode(array('success'=>"Your request is successfull")));

ブラウザでその応答が得られた場合、問題は PHP コード内にあります。

3番目。あなたのjquery put 1 alert('私たちは投稿しています'); $.post の前に、JavaScript が動作することを確認してください。

于 2013-04-08T04:49:51.857 に答える