2016-03-17 28 views
0

我有一個簡單的JQuery代碼,使ajax調用到PHP代碼。JQuery ajax調用失敗,但直接的URL工程

$(文件)。就緒(函數(){

var $isbn = $('#isbn'); 
var $authorName = $('#authorName'); 
var $bookTitle = $('#bookTitle'); 

$('#searchButton').click(function(){ 

    var isbnValue = $isbn.val(); 
    var authorNameValue = $authorName.val(); 
    var bookTitleValue = $bookTitle.val(); 

    alert(isbnValue); 

    $.ajax({ 
     type: "GET", 
     url: "php/getBooks.php", 
     dataType: "json",  
     data: { 
      isbn: isbnValue 
     }, 
     success: function (data) { 
      alert(data); 
     }, 
     error: function(data) { 
      alert(data); 
     } 

    }); 
}); 

});

而我的PhP代碼連接到數據庫並根據查詢字符串提取數據。這是我的PhP代碼。

<?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); 
    }  
?> 

當我從jQuery的執行我得到下面的錯誤對象作爲響應 對象{readyState的:0,responseText的: 「」,狀態:0,狀態文本: 「錯誤」}

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

我得到了json對象作爲結果。我不確定錯誤在哪裏。任何幫助都會有所幫助。提前致謝。

回答

1

您提供的代碼似乎功能正常。我甚至用jQuery 1.12.1在本地測試它,並沒有任何問題。

您收到的錯誤表示ajax調用在完成之前被中斷。有很多事情會導致這種情況。最常見的包括跨域問題,並使用鏈接或表單操作與您的ajax調用協調一致。

詳情請參見下面的文章在此:

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

快速谷歌搜索:

{readyState的:0,responseText的: 「」 狀態:0,狀態文本:「錯誤「}

將顯示其他情況下也可能發生的一些其他情況。

希望這有助於;)

+0

非常感謝。它確實幫助我調試我的代碼。 – maddie