我正在構建一個Javascript/jQuery和AJAX網站。然而,在測試時,我遇到了以下錯誤:jQuery,JavaScript - 網絡錯誤?
Timestamp: 6/11/2016 10:13:45 AM
Error: NetworkError: A network error occurred.
對我來說,最明顯的罪魁禍首將是AJAX調用我的腳本製作;不過,我試着評論它,但仍然收到同樣的錯誤。首次加載網站時,它會顯示三個警報框(選擇=類別& detail = test等等),但隨後會顯示錯誤,更改選擇不會觸發警報。
這是我的主網頁:
<?php
include('header.php');
?>
<div id='mainContent'>
<?php /* if(!$_SESSION['admin']) {
echo "<p>You do not have permission to view this page!</p>";
} else { */
echo "<form method='post' action='addItem.php'>
<div class='form-group'>
<label>Category</label>
<select id='categorySelection' name='categorySelection'>
<option value=1>Playstation</option>
<option value=2>Wii</option>
<option value=3>Gamecube</option>
<option value=4>N64</option>
<option value=5>Other Console</option>
<option value=6>DS</option>
<option value=7>Game Boy</option>
<option value=8>Other Handheld</option>
<option value=9>DVD</option>
</select>
</div>
<div class='form-group'>
<label>Item</label>
<select id='itemSelection' name='itemSelection'>
</select>
</div>
<div class='form-group'>
<label>Condition:</label>
<select id='conditionSelection' name='conditionSelection'>
<option value=1>Acceptable</option>
<option value=2>Good</option>
<option value=3>Very Good</option>
<option value=4>New</option>
</select>
</div>
<div class='form-group'>
<label>Price: </label>
<input id='itemPrice' type='text' name='itemPrice' />
</div>
<div class='form-group'>
<label>Description: </label>
<textarea id='itemDescription' name='itemDescription'></textarea>
</div>
</form>";
// }
?>
</div>
<script>
function selectionHandler(selectedAction, selectedValue) {
var gameData = "selection=" + selectedAction + "&detail=" + selectedValue;
alert(gameData);
$.ajax({
type: 'POST',
url: 'filter.php',
data: gameData,
success: function(returnData) {
if(selectedAction == 'category') {
$('#itemSelection').html(returnData);
} if(selectedAction == 'game') {
$('#itemPrice').val(returnData)
} else {
$('itemDescription').val(returnData);
}
} // end return
}); // end ajax
} // end handler
$(document).ready(function() {
$("#categorySelection").on("change", selectionHandler('category', "test")) ;
$("#itemSelection").on('change', selectionHandler('game', "test"));
$("#conditionSelection").on('change', selectionHandler('condition', "test"));
}); // end ready
</script>
<?php
include('footer.php');
?>
和我的PHP
<?php
include("header.php");
$db = new pdoAccess("localhost","root","");
$selection = $_POST['selection']; // either game, category, or condition
$detail = $_POST['detail'] // either categoryID or ISBN/Item ID
if($selection == 'category') {
$products = $db->filterByCategory($detail);
$html = "";
foreach($products as $product) {
$html += "<option value={$product->upc)}>$product->title</option>";
}
return $html;
} elseif ($selection = 'game') {
return $db->getProductPrice($detail);
} else {
return $db->getCategoryDescription($detail);
}
?>
謝謝!
編輯:應該指出,我也試過其他事件,如重點和選擇。同樣的問題。
你確定錯誤不是來自你的PHP?像pdo db連接一樣? – Chris
謝謝,但我很確定。唯一的頁面腳本是'filter.php',我將其與整個AJAX請求一起註釋掉了。網站的其他部分工作正常,如果我的PDO連接有問題,它肯定會失敗。奇怪的是,我確實在其他頁面上出現了這個錯誤 - 我從未注意到它,因爲它不影響功能。 CDN鏈接(對於jQuery)可能是什麼問題?再次感謝。 – KellyMarchewa
我會建議將您的ajax代碼移入您的文檔就緒區塊。它有可能試圖使用尚未加載的東西。更好的辦法是把它移到一個函數中,然後錯誤地再次調用函數。例如,如果有人丟失了互聯網連接,它將繼續嘗試,直到他們再次連接。除此之外,我不知道。你可以檢查狀態變量,如果它等於成功,然後執行你的代碼,如果不是console.log測試的東西。 – Chris