JQuery ajax调用失败但直接URL工作

时间:2016-03-17 22:10:40

标签: php jquery ajax

我有一个简单的Jquery代码,它对php代码进行ajax调用。

(文档)$。就绪(函数(){

<?php
    $dsn = 'mysql:dbname=library;host=localhost';
    // 'mysql:host=localhost;dbname=myDatabase'
    $username = 'root';
    $password = 'maddie';

    $isbnValue = $_GET["isbn"];

    try {
        $db = new PDO($dsn, $username, $password); // also allows an extra parameter of configuration
        $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        $isbn = $db->quote($isbnValue);
        $rows = $db->query("SELECT isbn, title FROM book WHERE isbn = $isbn");
        $names = array();

        foreach ($rows as $row) {
            $names[] = array($row['isbn'], $row['title']);      
        }
        print json_encode($names);

    } catch(PDOException $e) {
        die('Could not connect to the database:<br/>' . $e);
    }       
?>

});

我的PhP代码连接到数据库并根据查询字符串获取数据。这是我的PhP代码。

while (pch != NULL)
{
    printf ("%s\n",pch);
    pch = strtok (NULL, " ");
}
return 0;

当我从jQuery执行时,我得到以下错误对象作为响应 对象{readyState:0,responseText:“”,状态:0,statusText:“错误”}

如果我直接使用URL调用php代码 - http://localhost/LibraryManagement/php/getBooks.php?isbn=970880812

我得到了json对象作为结果。我不确定错误在哪里。任何帮助都会有所帮助。提前谢谢。

1 个答案:

答案 0 :(得分:1)

您提供的代码似乎有效。我甚至用jQuery 1.12.1在本地测试它并且完全没有问题。

您收到的错误表示ajax呼叫在完成之前被中断。有很多事情可以导致这种情况。最常见的包括跨域问题以及与您的ajax调用一起使用链接或表单操作。

有关详细信息,请参阅以下文章:

http://www.justinball.com/2013/02/25/jqxhr-returning-readystate-0-and-status-0/

快速谷歌搜索:

{readyState:0,responseText:&#34;&#34;,status:0,statusText:&#34; error&#34;}

将揭示可能发生的其他一些情况。

希望这会有所帮助;)