在phonegap移动应用程序中使用asp.net web api2服务

时间:2015-10-09 14:49:22

标签: asp.net cordova asp.net-web-api

我开发了一个asp.net web api2服务,用于手机移动应用程序。

Asp.net web api2服务正常运行

我已经通过ajax调用从localhost / abc或www.abc.com等任何网站测试过它。答案还可以

但是,phonegap没有回应。

我用过

<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
 <add name="Access-Control-Allow-Headers" value="Content-Type" /> 
 </customHeaders>

在我的服务中。

我用过

<access origin=".*" />

在phonegap中。

但没有结果。

请帮我解决这个问题。

1 个答案:

答案 0 :(得分:1)

@Debashis,
在所有可能的情况下,你没有实现CSP(内容安全策略)。此政策需要在网页级别实施。见下文。

快速查找许多常见的白名单问题

另一种方法是快速解决此问题 - 但请注意,此修补程序会删除white-list的所有需求。这会创建一个您可能不希望传递的security issue

QUICK FIX 将此添加到您的config.xml
<preference name="phonegap-version" value="3.7.0" />

答案很长:

来自Top Mistakes by Developers new to Cordova/Phonegap你已经点击了:

  • #6 未为您的编译器设置“phonegap版本”
  • #7 没有为您的插件设置“版本”
  • #10 未在config.xml中添加新的“white-list”和“white-list plugin”参数。

对于#6&amp; #7

  

使用CLI版本,如果您没有为您的平台分配版本,或者如果您未在config.xml中设置phonegap-version,则在“Phonegap Build”中,您将获得最新版本。如果运气好,您的程序就会按预期运行。如果你不幸运,你会得到一系列级联错误。

     

幸运的是,对于我们所有人来说,Holly Schinsky写了一篇很好的博文来解释这一切:

     

Cordova / PhoneGap版本混淆
  http://devgirl.org/2014/11/07/cordovaphonegap-version-confusion/

#10

  

这个相对*新*要求意味着 - 要访问网络上的任何网站或资源,您必须使用白名单和白名单插件。如果您使用cordova-android@4.0.0或更高版本,此要求将生效;包括cli-5.1.1和cli-5.2.0。但是,如果您的版本在4.0.0之前,假设为3.5.0或3.7.0,则必须添加 white-list 要求。

     

要明确的是,“白名单”已经存在了一段时间,但插件和要求非常新。正如您所料,当添加“白名单”时,不推荐使用事实上的开放访问功能。或者说另一种方式,事实上开放访问功能已被计划并计划被淘汰。此更改标志着删除开放访问功能的一个步骤。

     

此外,内容安全策略(CSP)已经吸引了众多开发人员 - 因为它的公开性很差。 根据您的使用情况和您使用的Phonegap版本,CSP需要进入您使用的每个HTML页面,就像您必须等待'deviceready'一样。但是,有些情况根本不需要它。文档让一些人感到困惑,请仔细阅读。文档隐藏在许多最新文档页面的底部。

相关链接

  

Phonegap Build Forum:Notes for upgrading to cli-5.1.1 on PGB,现在需要白名单

     
相关问题