如何在cordova应用程序中为ajax调用配置服务器主机IP地址和端口
我正在尝试将我的一个Web应用程序转换为使用cordova的混合移动应用程序。 我正在使用聚合物和网络组件。 我也能够在iOS设备中呈现UI。 不过,我想知道如何在构建或展示应用程序时动态地配置我的服务器(本例中为我的笔记本电脑)的IP地址和端口。 可能是一些cordova设置(如env变量或构建参数)
我的HTML
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
<script src="bower_components/webcomponentsjs/webcomponents-lite.js"></script>
<link rel="import" href="styles/app-theme.html">
<link rel="import" href="bower_components/paper-toolbar/paper-toolbar.html">
<link rel="import" href="bower_components/paper-drawer-panel/paper-drawer-panel.html">
一些阿贾克斯呼吁。
<iron-ajax id="resetValidate" **url="/api/appusers/reset"** method="post" content-type="application/json" on-response="handleResponse" on-error="handleError"></iron-ajax>
....
所以实际上我想在这种情况下调用http :: / 192.168.1.39:3000//api/appusers/reset,但更改代码并不是一个好的解决方案,因为我有超过100个地方,并且通过此ip将会有所不同对于所有开发人员而言,每次都会改变。 当应用程序明显准备就绪时,我需要为所有apis配置一些baseurl,所以我想知道cordova的这种方式。
这适用于Web应用程序/浏览器,因为我在同一个快递服务器上呈现html和js文件以及api。 因此,主机名和端口对于静态和动态内容是相同的,并且在开发期间是localhost。
只需使用一个JavaScript全局变量。 然后,不要对网址进行硬编码,只需使用与其余路径连接的全局变量即可。 这样,你只需要在每个开发者机器的一个地方设置url。
YourCustomConfig.js
var globalServerUrl = "http://localhost:3000";
这是每个开发机器更改的部分。
AllOtherFilesNeedingToUseTheUrl.js
globalServerUrl + "/the/rest/of/your/path"
无处不在为HTTP请求建立路径。 这些都不需要再次更新。
确保该全局变量的值在源代码控制中设置为您的生产服务器位置,并且您很好。
上一篇: how to configure server host ip address and port in cordova app for ajax calls