我正在构建一个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