【发布时间】:2013-11-09 06:33:42
【问题描述】:
现在我需要使用 phonegap 调用另一个网络服务器上的 php 脚本来从我拥有的数据库中检索数据。使用硬代码运行脚本可以正确检索数据,但它显示为 ajax 调用没有返回任何内容,或者甚至没有将数据作为 post 获取。目前在控制台中我收到"Origin null is not allowed by Access-Control-Allow-Origin. "
$(document).ready(function() {
$('.check').click(function(){
alert("Step1");
var thisID = $(this).attr('id');
alert(thisID);
$.ajax({
type: "POST",
url: "http://csmaster.sxu.edu/group2/group2/CougarLunch/retrieveColumn.php",
data: { ID: thisID},
cache: false,
async:true,
datatype: "json",
success: function(data)
{
console.log(data);
alert(data.ItemID);
}
});
});
});
PHP 如果它是相关的,我对此表示怀疑
if(isset($_POST['ID']))
{
$ID = $_POST['ID'];
function retrieve($ID)
{
$stmt = $mysqli->query("SELECT * FROM group2.menu WHERE ItemID = $ID");
if($stmt->num_rows) //if there is an ID of this name
{
$row = $stmt->fetch_assoc();
echo $row;
print json_encode($row);
}
}
【问题讨论】:
-
当它是手机上的实际应用时,你不应该受到跨域策略的限制。
-
1 为什么会这样? 2. 当我在 chrome 中启动它时它已经无法正常工作,所以我对此表示怀疑。
-
您是否在 phonegap 配置中将域列入白名单?
-
请注意此代码
header("Access-Control-Allow-Origin: "*");,因为它本质上会打开您的 PHP 文件,以完全由任何 AJAX 请求运行,因此理论上我可以从我的网站向您的网站编写 AJAX 调用,并且访问该 URL 上可用的任何数据。我建议搞乱console.log(document.URL);,看看是否可以缩小PhoneGap 可能模拟的URL/域。从不同的手机、桌子、网络、wifi 开/关等尝试。
标签: php jquery ajax database cordova