Ajax 通电话 Javascript 在 PhoneGapp 应用上
Ajax calls with Javascript on PhoneGapp app
我正在尝试使用 JS 和 jQuery 库从服务器(我创建的,我有完全访问权限)加载数据。这在浏览器中完美运行。但现在我正试图让它在 phonegap 上工作。由于某些原因,这不起作用。
- 不是jQuery,我试着用它改变颜色,效果很好。
- 我可以访问互联网,当我尝试从网站加载图片时它工作正常。
我在 config.xml
中添加了以下设置:
<access origin="*"/>
<plugin name="cordova-plugin-whitelist" version="1"/>
<allow-intent href="http://*/*"/>
<allow-intent href="https://*/*"/>
<allow-intent href="tel:*"/>
<allow-intent href="sms:*"/>
<allow-intent href="mailto:*"/>
<allow-intent href="geo:*"/>
<platform name="android">
<allow-intent href="market:*"/>
<allow-intent href="*"/>
</platform>
<platform name="ios">
<allow-intent href="itms:*"/>
<allow-intent href="itms-apps:*"/>
</platform>
我也添加了一些 HTML 元标记:
<meta http-equiv="Content-Security-Policy"
content="default-src *;
style-src 'self' 'unsafe-inline' 'unsafe-eval';
script-src 'self' 'unsafe-inline' 'unsafe-eval';">
这是我的 AJAX 电话:
$.ajax({
url: "http://domain.com/Rooster/schedule",
data: {token : 's0m3r4nd0mt0k3n', user : '~me'},
type: "GET",
crossDomain: true,
success: function( response ) {
\irrelevant success function.
}
});
}
希望有人能让这个工作!
你们有白名单插件吗?这通常是此错误的来源
您的内容安全策略可能需要一个 connect-src 添加到其中列出您要连接到的服务器,或者 * 用于所有。这是一个例子:
<meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *; connect-src http://domain.com">
connect-src 控制您可以向哪些外部服务器发出 Ajax 类型请求。如需完整说明,请查看 this blog post and the Content Security Policy Reference 网站。
@大卫
你犯了一个常见的错误。您需要应用whitelist
系统。截至 Cordova Tools 5.0.0 (April 21, 2015). For Phonegap Build, that means since cli-5.1.1
(2015 年 6 月 16 日)
将 config.xml
中的(上面列出的)替换为以下内容:
<plugin name="cordova-plugin-whitelist" source="npm" spec="1.1.0" />
<allow-navigation href="*" />
<allow-intent href="*" />
<access origin="*" /> <!-- Required for iOS9 -->
请注意,您的应用现在不安全。保护您的应用程序取决于您。
使用以下内容修改您的 index.html
:
<meta http-equiv="Content-Security-Policy"
content="default-src *;
style-src * 'self' 'unsafe-inline' 'unsafe-eval';
script-src * 'self' 'unsafe-inline' 'unsafe-eval';">
请注意,您的应用现在不安全。保护您的应用程序取决于您。
快速提示:您可以通过删除所有 "inline" javascript 和样式 (css) 来绕过大部分 CSP(内容安全策略)。将它们放在一个单独的文件中。我将在本月晚些时候写博客。混合应用程序的新 "best of practice" 将 "inline" 移动到分隔文件。
这份白名单工作表应该可以帮助您保护您的应用程序。
HOW TO apply the Cordova/Phonegap the whitelist system -- 祝你好运
我正在尝试使用 JS 和 jQuery 库从服务器(我创建的,我有完全访问权限)加载数据。这在浏览器中完美运行。但现在我正试图让它在 phonegap 上工作。由于某些原因,这不起作用。
- 不是jQuery,我试着用它改变颜色,效果很好。
- 我可以访问互联网,当我尝试从网站加载图片时它工作正常。
我在 config.xml
中添加了以下设置:
<access origin="*"/>
<plugin name="cordova-plugin-whitelist" version="1"/>
<allow-intent href="http://*/*"/>
<allow-intent href="https://*/*"/>
<allow-intent href="tel:*"/>
<allow-intent href="sms:*"/>
<allow-intent href="mailto:*"/>
<allow-intent href="geo:*"/>
<platform name="android">
<allow-intent href="market:*"/>
<allow-intent href="*"/>
</platform>
<platform name="ios">
<allow-intent href="itms:*"/>
<allow-intent href="itms-apps:*"/>
</platform>
我也添加了一些 HTML 元标记:
<meta http-equiv="Content-Security-Policy"
content="default-src *;
style-src 'self' 'unsafe-inline' 'unsafe-eval';
script-src 'self' 'unsafe-inline' 'unsafe-eval';">
这是我的 AJAX 电话:
$.ajax({
url: "http://domain.com/Rooster/schedule",
data: {token : 's0m3r4nd0mt0k3n', user : '~me'},
type: "GET",
crossDomain: true,
success: function( response ) {
\irrelevant success function.
}
});
}
希望有人能让这个工作!
你们有白名单插件吗?这通常是此错误的来源
您的内容安全策略可能需要一个 connect-src 添加到其中列出您要连接到的服务器,或者 * 用于所有。这是一个例子:
<meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *; connect-src http://domain.com">
connect-src 控制您可以向哪些外部服务器发出 Ajax 类型请求。如需完整说明,请查看 this blog post and the Content Security Policy Reference 网站。
@大卫
你犯了一个常见的错误。您需要应用whitelist
系统。截至 Cordova Tools 5.0.0 (April 21, 2015). For Phonegap Build, that means since cli-5.1.1
(2015 年 6 月 16 日)
将 config.xml
中的(上面列出的)替换为以下内容:
<plugin name="cordova-plugin-whitelist" source="npm" spec="1.1.0" />
<allow-navigation href="*" />
<allow-intent href="*" />
<access origin="*" /> <!-- Required for iOS9 -->
请注意,您的应用现在不安全。保护您的应用程序取决于您。
使用以下内容修改您的 index.html
:
<meta http-equiv="Content-Security-Policy"
content="default-src *;
style-src * 'self' 'unsafe-inline' 'unsafe-eval';
script-src * 'self' 'unsafe-inline' 'unsafe-eval';">
请注意,您的应用现在不安全。保护您的应用程序取决于您。
快速提示:您可以通过删除所有 "inline" javascript 和样式 (css) 来绕过大部分 CSP(内容安全策略)。将它们放在一个单独的文件中。我将在本月晚些时候写博客。混合应用程序的新 "best of practice" 将 "inline" 移动到分隔文件。
这份白名单工作表应该可以帮助您保护您的应用程序。
HOW TO apply the Cordova/Phonegap the whitelist system -- 祝你好运