0

我有一个托管在服务器 1 上的简单 jQuery Mobile 应用程序。它包括一些查询托管在服务器 2 上的数据库的 php 页面。

当所有东西(jQuery Mobile 网站和数据库)都托管在同一台服务器上时,这一切都很好,但是当它们分开时,它不会显示任何数据。php 页面本质上是查询数据库并检索 20 条记录,然后将这些记录输出为 html,例如:

<div data-role="content">

    <ul data-role="listview" data-filter="true">
        <? echo $output; ?>
    </ul>
</div>

$output 只是一个 php 变量,其中包含 jQuery Mobile 期望格式的记录列表视图。

任何人都知道当这个 php 页面托管在服务器 1 上时,我如何才能让它工作,而服务器 1 正在访问服务器 2 上托管的数据。

我认为问题与安全相关 - 当数据库在服务器 2 上时,jQuery Mobile 会因为与跨域请求相关的原因而阻止请求?尝试从数据库中检索数据时遇到“未知错误”,这并不是特别有用。

如果我在服务器 1 上放置相同的 getContacts.php 页面并删除所有 jQuery 移动组件,那么它只是一个直接的 php 页面,它查询服务器 2 上的数据库并输出 html,它可以完美运行。

更新:我找到了这个页面:http: //jquerymobile.com/demos/1.2.0/docs/api/globalconfig.html

其中讨论了默认设置为 false 的 allowCrossDomainPages 选项。我想尝试覆盖它并将其设置为 true 但不确定如何 - 任何人都知道如何设置此覆盖?不幸的是,我不熟悉 jQuery,只是按原样使用 jQuery Mobile。

4

1 回答 1

0

在这种情况下,PHPheader('Access-Control-Allow-Origin: http://server2.example.com')应该可以工作(将其放在 jQuery 发出请求的页面上 - 在发送任何内容之前的页面顶部)

于 2013-05-22T12:40:16.727 回答