1

我的 phonegap 项目在黑莓模拟器上工作时遇到问题。版本为 10。

当我说 phonegap 时,我还没有使用任何 Cordova 功能,但我的简单 javascript 功能一开始就不起作用。

我有一个调用 Javascript 函数的按钮单击。这个 JS 函数有一个 PHP 作为 URL 来检索数据。以下是功能代码 -

function getAllDetails() {
  var myTable = '';
    myTable += '<table id="myTable" cellspacing=0 cellpadding=2 border=1>';
    myTable += "<tr><td><b>S.No.</b></td><td><b>Full Name</b></td><td><b>DOB</b></td><td><b>Gender</b></td><td><b>Address</b></td><td><b>Image</b></td><td><b>Video</b></td></tr>";
    var url = "http://XXX.XXX.XX.XX:XX/PG_crud_experiment1/retrieve_all.php";
    $.getJSON(url, function(json) {
                $.each(json, function(i, v) {
                    alert(v.id);
                            myTable += "<tr><td>" + v.id + "</td><td>"
                                    + v.name + "</td><td>" + v.dob
                                    + "</td><td>" + v.address + "</td><td>"
                                    + v.image + "</td></tr>";
                        });

                $("#emp_tb1").html(myTable);
            });
};

这里的问题是我的按钮单击正在输入 Javascript 函数,但我收到一条错误消息,指出它无法访问放置我的 PHP 文件的 URL。PHP 实际上正在运行一个 SELECT SQL 并从数据库中检索值。

下面是我在 BB 10 模拟器上的错误截图。

谁能告诉我为什么会出现这个问题?在设备可以运行某些 Javascript 功能或访问服务器上的 PHP 脚本之前,是否需要遵循任何先决条件/程序?XXX

4

3 回答 3

3

解决办法是编辑项目的config.xml文件——添加标签 <access subdomains="true" uri="http://*URI name here*"/>。只有这样,黑莓才允许访问不同域的权限。

于 2013-05-18T11:29:44.180 回答
1

这可能是跨站点请求问题 - 我怀疑 PHP 端不接受来自其自己域之外的请求。

把这个头文件放在 PHP 文件的顶部怎么样?

header('Access-Control-Allow-Origin: *'); 
于 2013-05-17T09:22:05.690 回答
0

正如anami之前所说,您需要在服务器 php 文件中启用跨域来源。您还需要<access subdomains="true" uri="http://*URI name here*"/>在 config.xml 中为黑莓提供。

拥有这两个位置应该可以解决您的问题。

于 2013-05-18T11:36:28.667 回答