应用程序在使用phonegap build构建aap之后无法获取数据

时间:2015-10-02 11:56:07

标签: jquery ajax cordova

我使用jquery构建了我的手机间隙应用程序我已经使用休息服务获取数据。我写了一个如下的ajax调用:----

var Products = function () {
var targetElement = $("product-list");
var content = 'No products found';
var url = API + "Products";
customerId = 1;
$.ajax({
type: "POST",
dataType: 'json',
contentType: "application/json; charset=utf-8",
url: url,
data: '{"Key":"' + Key + '","storeId":"' + 1+ '","languageId":"' + 1+ '","customerId":"' + customerId + '","currencyId":"' + 1+ '"}',
cache: true,
async: true,
complete: function (data) {
if (data == "undefined") {
targetElement.html(content);
$(".loader").hide();
return;
}
var resData = JSON.parse(data);
},
error: function (xhr, textStatus, error) {
targetElement.html(content);
}
});
};

当我在本地运行我的应用程序时,我得到了数据但是当我使用phonegap构建时,它返回我未定义。所以在构建时会出现问题,所以你能告诉我你改变了什么,所以我可以按照改变。或者应该遗漏什么东西。尽快给出答复。

上面代码中的

是20个随机字符串。 &安培; Api是一个字符串或休息服务URL,我从中获取json格式的数据。我使用这个ajax调用得到了这些数据。

我已添加白名单或白名单 - 旧版插件和域名白名单。 而且我已经将所有插件都提供给npm。并写入以从我在下面编写的任何域或源获取数据,在cofig.xml文件中提供代码。

<access origin="*"/>
  <plugin name="cordova-plugin-whitelist" version="1" source="npm"/>
  <allow-intent href="http://*/*"/>
  <allow-intent href="https://*/*"/>
  <allow-intent href="tel:*"/>
  <allow-intent href="sms:*"/>
  <allow-intent href="mailto:*"/>
  <allow-intent href="geo:*"/>

1 个答案:

答案 0 :(得分:0)

如果您使用的是cordova 5,则需要在index.html中设置Content-Security-Policy元标记。

如果你想从iOS应用程序连接到https://vatsal.ap.net,例如,你必须在“gap:”部分添加它:

<meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: https://vatsal.ap.net https://ssl.gstatic.com 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *;">

请参阅底部的更多文档here

希望它有所帮助!