我正在尝试做的基础在mySQL中存储路径然后在服务器上存储图像。然后使用下面的PHP代码将它们加载到屏幕上并使用按钮移动它们。这在浏览器上很好。然而,这些操作实际上将在不接受PHP的cordova应用程序上完成,我无法使用HTTP请求来执行我的功能。任何人都可以帮我转换我的代码并显示我的图像。我认为最好的选择是使用JSONP或AJAX和JSONP的组合。
以下是我尝试使用HTTP请求显示的PHP端代码。
<!DOCTYPE html>
<html>
<?php
include("mysqlconnect.php");
$select_query = "SELECT `ImagesPath` FROM `offerstbl` ORDER by `ImagesId` DESC";
$sql = mysql_query($select_query) or die(mysql_error());
$data = array();
while($row = mysql_fetch_array($sql,MYSQL_BOTH)){
$data[] = $row['ImagesPath'];
}
$images = json_encode($data);
?>
<script>
var images = <?php echo $images; ?>
alert(images[1]);
var index = 0;
function buildImage() {
var img = document.createElement('img')
img.src = images[index];
document.getElementById('content').appendChild(img);
}
function changeImage(){
var img = document.getElementById('content').getElementsByTagName('img')[0]
index++;
index = index % images.length; // This is for if this is the last image then goto first image
img.src = images[index];
}
</script>
<body onload="buildImage();">
<div class="contents" id="content"></div>
<button onclick="changeImage()">NextImage</button>
</body>
</html>
这是我用来显示PHP代码的cordova中的HTML代码。但是我的JavaScript函数都不起作用。我认为它需要JSONP的元素。
<!DOCTYPE html>
<html>
<head>
<script>
function showUser(str) {
if (str=="") {
document.getElementById("phpFile").innerHTML="";
return;
}
if (window.XMLHttpRequest) {
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
} else { // code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
document.getElementById("content").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","http:server/content.php?");
xmlhttp.send();
}
</head>
<body onload="showUser()">
<div class="contents" id="phpFile">
</body>
</html>
答案 0 :(得分:0)
由于您运行的是应用而非实际的浏览器,因此不适用相同的域策略。
我必须在config.xml
内部指定我想通过该应用访问的任何网址。
<widget xmlns = "http://www.w3.org/ns/widgets" id = "io.something.something" version = "1.6">
<access origin="http://127.0.0.1*"/> <!-- allow local pages -->
<access origin="https://mydomain.com" subdomains="true" />
</widget>
http://cordova.apache.org/docs/en/3.1.0/guide_appdev_whitelist_index.md.html