尝试在我的Phonegap应用程序中检索和显示信息时,我不断收到此错误。
这是我得到的错误:
GET http://192.168.0.4:3000/Application/www/retrieveSymbol.php send @ jquery-2.2.0.js:9172jQuery.extend.ajax @ jquery-2.2.0.js:8653jQuery.(匿名函数) @ jquery-2.2.0.js:8804jQuery.extend.getJSON @ jquery-2.2.0.js:8785(匿名函数) @ 书签.html:44书签.html:1 XMLHttpRequest 无法加载 http://192.168.0.4:3000/Application/www/retrieveSymbol.php。请求的资源上不存在"访问控制允许源"标头。因此,不允许访问源"空"。响应具有 HTTP 状态代码 404。
这是代码:
<script>
//populates product container
$(" #productContainer").html('');
$.getJSON("http://192.168.0.4:3000/Application/www/retrieveSymbol.php", function(data){ //retrieves json array
$.each(data, function(i, field){ //loops through array
$("#productContainer").append( //creates product box filling it with data
"<div id='productBox'>" + "<div id='name'>" + field[1] + " </div>" + "<br>" +
"<div id='image'>" + "<img id='image' src='Images/" + field[5] + "'/>" + "</div>" +
"<div id='description'>" + "<b>Description:</b> " + "<br>" + field[2] + " </div>" + "" +
"<div id='price'>" + "£" + field[3] + " </div>" + "<br><br>" + "<br>" +
//gets name and price and sends data to basket when button is clicked
"<form action='Basket.php' method='post' id='add'>" +
"<input type='hidden' name='itemName' value=" + field[1] + "/>" +
"<input type='hidden' name='itemPrice' value=" + field[3] + ">" +
"<input id='addButton'type='submit' value='Add to Cart'>" +
"</form>" + "</div>"
);
});
});
</script>
接收符号.php
<?php
//connect to the database
$mysqli = NEW MySQLi ('localhost','root','','contentdatabase');
//query database
$resultSet = $mysqli->query("SELECT * FROM items");
//count the rows
if($resultSet->num_rows != 0) {
//turn the results into an array
$rows = $resultSet->fetch_all();
echo json_encode($rows);
}else{
echo "{no connection}";
}
?>
谁能指出为什么会这样?
这是典型的跨源错误,可以在大多数PhoneGap项目中看到。请查看此答案以获取更多详细信息和解决方案。
PhoneGap/Cordova以及最新版本的Google Chrome中没有"访问控制允许来源"
使用此chrome扩展名Allow-Control-Allow-Origin,它允许您从任何来源请求任何带有ajax的网站