在我走上一条可能无法实现的道路之前,我有一个普遍使用的问题。我想构建一个可以在外部网站上与API(读取数据和更新日期)连接的应用程序。外部站点提供两种连接API的方法,即客户端和服务器API调用集。客户端方法需要将引用域列入白名单,服务器方法需要将引用站点的IP列入白名单。
如果我正在构建常规网页并希望连接到API,那么如果HOST.com是我要连接的网站,而CLIENT.com是我要连接的网站,那么我会白名单CLIENT.com在HOST.com的安装文件中。
或者,如果我想通过服务器API(如php)访问HOST.com,那么我需要在HOST.com的安装文件中将CLIENT.com的网站IP列入白名单。
我的问题是,这可以在Cordova内完成吗?我很明显无法将设备的IP列入白名单,但设备是否可以将引荐域传递给HOST.com,以便通过白名单?
或者我将不得不设置某种在云中托管的webapp,应用程序与之接口,然后托管应用程序通过列入白名单的域(甚至通过服务器API和白名单IP)访问HOST.com。 / p>
我意识到这个问题的普遍性,但对任何反馈都会有所帮助。想要指出这不是关于Cordova应用程序的白名单,这是远程服务器上的服务器配置。如果CLIENT.com未列入白名单,则CLIENT.com无法提前访问HOST.com。
答案 0 :(得分:4)
你可以用简单的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上发送该数据。