Cordova PhoneGap plist:外部主机可以设置为ip地址吗?

Cordova PhoneGap plist:外部主机可以设置为ip地址吗?,cordova,jquery-mobile,mobile,Cordova,Jquery Mobile,Mobile,刚刚开始在Mac上开发PhoneGap。我在未分配DNS的服务器上托管了一个.NET服务。我可以使用phonegap.plist中的ip地址吗?我的代码可以在浏览器中工作,甚至可以在实际的iphone上作为web版本。当我从xcode编译时,它似乎不起作用(甚至在模拟器上也不起作用)。我通过lint运行了这个js,现在我有点麻烦了。。。这就是我要做的 我在单击按钮时调用GetEstimate: function GetEstimate(From, To) { "use strict"; varT

刚刚开始在Mac上开发PhoneGap。我在未分配DNS的服务器上托管了一个.NET服务。我可以使用phonegap.plist中的ip地址吗?我的代码可以在浏览器中工作,甚至可以在实际的iphone上作为web版本。当我从xcode编译时,它似乎不起作用(甚至在模拟器上也不起作用)。我通过lint运行了这个js,现在我有点麻烦了。。。这就是我要做的

我在单击按钮时调用GetEstimate:

function GetEstimate(From, To) {
"use strict";
varType    = "GET";
varUrl     = "http://xx.xxx.xxx.xx/service.svc/" + 
"GetBasicEst?pickupPostalCode="+ From + "&dropoffPostalCode="+ To +"";
varContentType    = "application/json; charset=utf-8";
varDataType = "jsonp";
varProcessData = true;
alert("GetEstimate");
new CallService();}

function CallService(){
alert("Inside Call Service");
"use strict";
$.ajax({
       type          : varType, //GET or POST or PUT or DELETE verb
       url           : varUrl, // Location of the service
       data          : varData, //Data sent to server
       contentType   : varContentType, // content type sent to server
       dataType      : varDataType, //Expected data format from server
       processdata   : varProcessData, //True or False
       success       : function(data) {//On Successfull service call
       alert("Success");
       var innerHtml = "";
       var rhigh=data.EstimateHigh;
       var rlow=data.EstimateLow;
       alert(rlow);
       $("#rHigh").html(rhigh);
       $("#rLow").html(rlow);                       
       $("#rHigh").formatCurrency();
       $("#rLow").formatCurrency();                 
       },
       //error: ServiceFailed // When Service call fails
       });}
CallService内部的警报确实会触发,然后它似乎就停在那里了……不调用$.ajax(


我可以在左边的字段中找到出路,所以任何建议都是有帮助的。

只需在plist中添加一个新条目,并将值设置为
*
。这是所有域的总括。:)

再次查看代码后,问题出在这里。因此,您始终需要将域列为白名单,但最重要的是确保正确调用ajax

您正在梳理url和数据,它们需要是独立的东西。您可以调用varData,但您没有在任何地方创建它

function GetEstimate(From, To) {
"use strict";
varType    = "GET";
varUrl     = "http://xx.xxx.xxx.xx/service.svc/GetBasicEst";

// YOUR DATA
varData = "pickupPostalCode="+ From + "&dropoffPostalCode="+ To;

varContentType    = "application/json; charset=utf-8";
varDataType = "jsonp";
varProcessData = true;
alert("GetEstimate");
new CallService();}

function CallService(){
alert("Inside Call Service");
"use strict";
$.ajax({
       type          : varType, //GET or POST or PUT or DELETE verb
       url           : varUrl, // Location of the service
       data          : varData, //Data sent to server
       contentType   : varContentType, // content type sent to server
       dataType      : varDataType, //Expected data format from server
       processdata   : varProcessData, //True or False
       success       : function(data) {//On Successfull service call
       alert("Success");
       var innerHtml = "";
       var rhigh=data.EstimateHigh;
       var rlow=data.EstimateLow;
       alert(rlow);
       $("#rHigh").html(rhigh);
       $("#rLow").html(rlow);                       
       $("#rHigh").formatCurrency();
       $("#rLow").formatCurrency();                 
       },
       //error: ServiceFailed // When Service call fails
       });}

给它一个机会,希望它有帮助

我明白了!!德鲁:我把你关于*的答案标记为正确。谢谢你。我尝试了一些方法让它工作,所以我会列出我做了什么。我将IP更改为dns解析名称,将IP从Phonegap.plist中取出,因此只有*存在。然后,我向ajax调用jsonp添加了一行代码:“回调”。不确定是哪一个做的,但它现在正在工作。

这就是我为自己的项目所做的,但我想知道这样做是否会有任何安全问题?知道吗?不,你应该没事的!plist只需要知道连接到我改为的IPOk是可以的,但是代码似乎仍然不起作用。就像我提到的那样,它可以使用$.ajax(并且似乎停止了。我已经在$ajax函数的两边都做了提醒。任何建议都会很棒。谢谢Drew的建议。你确认你已经定义了你的变量吗?比如varType之类的?是的,它们都是在我的.js文件的顶部定义的。奇怪的是,当从浏览器运行时,它能完美地工作。好吧,这是一个好消息。)不行。很好,我很笨,但它在浏览器测试中一直有效。你的建议在浏览器测试中仍然有效,所以我更好,但仍然没有在iphone上工作。感谢你在这方面的时间。这是我第一次尝试这个phonegap。我做了一些很棒的事情,但这是我的应用程序和未来应用程序的全部关键。这是lly很糟糕,因为我甚至不知道如何尝试解决这个问题。所以我想知道你是否可以使用$.ajax()关于Phone Gap。我发现了这一点。我可能会尝试这样写。看起来它仍然应该像我写的那样工作。你完全可以在我制作的每个Phone Gap应用程序中使用它,它是我框架的一部分。在链接中使用的是javascript ajax,非常类似。老实说,你的问题的答案将非常小。我会仔细查看你的代码,可能会尝试更简单的代码,直到你看到它…在这种情况下,它可能是一个错误的位置,或一个流浪字符或拼写错误。我是我…这可能是由于我的服务。就像我提到的,它在mac上的Chrome上工作完美无瑕…甚至safari。它在Iphone或Iphone仿真器上无法工作。还有其他建议吗它在那里。我在这里处于边缘。为什么它在浏览器中工作?而不是在电话上?grrrrrI知道了!!德鲁:我把你关于*的答案标记为正确。谢谢你。我尝试了一些方法让它工作,所以我会列出我所做的。我将IP更改为dns解析名称,我从Phonegap.plist中删除了IP,所以就*是然后我在ajax调用jsonp中添加了一行代码:“callback”。我不确定是哪一行做的,但它现在可以工作了。