【问题标题】:can't able to access php file from serverside无法从服务器端访问 php 文件
【发布时间】:2026-01-18 20:05:02
【问题描述】:

我是移动 Web 应用程序开发的新手...现在我正在努力使用 mosync sdk 连接 myphpadmin...

$(document).ready(function () {
    $.ajax({
        url: "http://192.168.2.136:80/ajaxjson/gene.php",
        dataType: 'text',
        success: function (output) {
            var i = $.parseJSON(output);
            //  $('#one').append('<p style="font-weight:bold">NEWS LETTER</P>');
            for (var j = 0; j < i.length; j++) {
                var title_temp = i[j].Title;
                var title_resized = title_temp.substring(0, 30);
                title_resized = title_resized + "...";

                $('#one').append('<div><p><span style="font-weight:bold" >TITLE</span> &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp: &nbsp; &nbsp;<small><a href=' + i[j].links + '>' + title_resized + '</a></small><br><span style="font-weight:bold" >SOURCE</span> &nbsp; &nbsp;&nbsp;&nbsp; :  &nbsp; &nbsp;' + i[j].Source +
                    '<br><span style="font-weight:bold" >CATEGORY</span> &nbsp;: &nbsp; &nbsp;' + i[j].Category + '<hr><p></div>');
                //$('#one').append('<p><div style="background-color:#ccc"><span style="font-weight:bold" >SOURCE</span> &nbsp; &nbsp;&nbsp;&nbsp; :  &nbsp; &nbsp;'+i[j].Source+'<p>');
                //$('#one').append('<p><div style="background-color:#ccc" onclick="get"><span style="font-weight:bold" >CATEGORY</span> &nbsp;: &nbsp; &nbsp;'+i[j].Category+'<hr><p></div>');
            }
        },
        erro: function (xhr, ajaxOptions, thrownError) {
            alert(xhr.statusText);
            alert(thrownError);
        }
    });
});

问题: 我将gene.php 文件放在localhost 中它运行良好,但是如果我加载文件是服务器(http://xxxxxx.in/NewsRecord.php)它就无法正常工作。我不知道如何解决这个问题?帮助提前谢谢

【问题讨论】:

  • 试试 intelxdk 不错的一个
  • 只使用 url: "/ajaxjson/gene.php" 作为 url 并不是一个坏主意。这样,当您部署脚本时,它将与您正在处理的域相关。

标签: php jquery ajax mobile mosync


【解决方案1】:

实际上我试图从另一台服务器访问文件,没有权限是不可能的,浏览器不允许这样做。然后我在回调中使用 JSONP 解决了这个问题。

其他服务器文件http://xxxxxx.in//NewsRecord.php?callback=?

echo $_GET['callback'].'('.json_encode($output).')';

每当我运行此链接时,它都会打印 JSONP 数据 ({"result":"value"}) 像这样,我将 dataType 更改为 JSONP,它现在可以正常工作了

$(document).ready(function () {
    $.ajax({
        url: "http://xxxxxx.in//NewsRecord.php?callback=?",
        dataType: 'jsonp',
        success: function (output) {
              //working now
                    alert(output.result);

}
});

【讨论】: