通过 Cordova 访问需要列入白名单的引用域名的远程 API

Accessing a remote API that requires a whitelisted referring domain name via Cordova

在我走上一条可能不可能的路之前,我有一个一般使用问题。我想构建一个可以与外部网站上的 API(读取数据和更新日期)交互的应用程序。外部站点提供了两种连接到 API 的方法,一组 API 调用的客户端和服务器。客户端方法需要将引用域列入白名单,服务器方法需要将引用站点的 IP 列入白名单。

如果我正在构建一个常规网页并想要连接到 API,那么如果 HOST.com 是我想要连接到的站点并且 CLIENT.com 是我想要的站点连接 FROM,然后我会在 HOST.com.

的设置文件中将 CLIENT.com 列入白名单

或者,如果我想通过服务器 API 访问 HOST.com(比如 php),那么我需要将 CLIENT.com 的网站 IP 列入白名单HOST.com.

的设置文件

我的问题是,这可以在 Cordova 中完成吗?我显然无法将设备的 IP 列入白名单,但是设备可以将引用域传递给 HOST.com 以便它通过白名单吗?

或者我是否必须设置某种托管在云中的 web 应用程序,该应用程序与之交互,然后该托管应用程序使用列入白名单的域(甚至通过服务器 API 和白名单 IP)。

我意识到这个问题的普遍性,但对任何反馈都会有所帮助。要指出的是,这与 Cordova 应用程序上的白名单无关,这是远程服务器上的服务器配置。如果 CLIENT.com 未列入白名单,则 CLIENT.com 无法访问 HOST.com 提前致谢。

您可以通过简单的 ajax 调用进行任何操作。如果您有 PHP 知识,您可以使用它发送给另一个 url(例如一些数据):

[PHP - 用 ajax]

调用
    $postdata = http_build_query(
        array(
            'name' => $name,
            'surname' => $surname
        )
    );

    $opts = array('http' =>
        array(
            'method'  => 'POST',
            'header'  => 'Content-type: application/x-www-form-urlencoded',
            'content' => $postdata
        )
    );

    $context  = stream_context_create($opts);
    //call some api
    $result = file_get_contents('http://someurl.com/write.php?key=2q2q3q&name='.$name.'&surname='.$surname.', false, $context);

if($context) {
  echo "success"; // ajax returned
} else {
  echo "error"; // ajax returned
} 

所以在 ajax 调用(更新或其他)之后,您也可以在其他 host.com.

上发送该数据