我知道这个问题在网上被问了很多次。我什么都试了,运气都没了。
我正在尝试将数据发布到服务器并获得一个简单的响应。显然,我需要安装cordova白名单插件来实现从应用程序访问外部源,所以我安装了它。
我返回的错误是:加载资源失败:net::ERR\u NAME\u NOT\u RESOLVED
项目信息:
已安装的插件:
元标签:
<meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval'">
我使用的工具:Windows 10、Visual Studio 2015
我所做的:
>
卸载插件并通过Cordova CLI重新安装
cordova插件添加cordova插件白名单
通过Github卸载并重新安装插件
我甚至将Cordova从6.2.0更新为6.5.0
我创建了一个简单的GET请求,看看它是否有效,但仍然没有任何效果。
清除了Visual Studio中的Cordova缓存。
我使用的Javascript代码:
$http({
method: 'GET', url: "http://mywebsite.com/simple_get.php"
}).then(
function (response) {
alert(JSON.stringify(response));
},
function (response) {
alert(JSON.stringify(response));
}
);
jQuery代码也已尝试:
var settings = {
"async": true,
"crossDomain": true,
"url": "http://mywebsite.com/demo.php",
"method": "GET",
"headers": {
"content-type": "application/x-www-form-urlencoded",
"cache-control": "no-cache"
},
"data": {}
}
jQuery.ajax(settings).done(function (response) {
console.log(response);
});
我不知道如何调试和得到的问题,任何帮助将不胜感激。。。这是我的应用程序要完成的最后一步:(
谢谢
编辑2:
在Ajax函数之上的任何地方尝试此代码。
$(document).ajaxError(function(e, jqxhr, settings, exception) {
if (jqxhr.readyState == 0 || jqxhr.status == 0) {
return;
}
});
这将捕获状态0错误,并允许jQuery忽略它并继续Ajax请求。
仅将其用于调试目的。
编辑
请尝试以下操作。
$.ajax({
url: 'YourRestEndPoint',
headers: {'yourHeaderKey': 'yourHeaderValue',
'yourHeaderKey2': 'yourHeaderValue2'},
method: 'POST',
data: {},
success: function(data){
console.log('succes: '+data);
},
error: function (jqXHR, textStatus, errorThrown){
console.log(jqXHR + " " + textStatus + " " + errorThrown);
console.log(jqXHR.status);
}
});
这应该可以更好地记录错误。
我从您的问题中看到您正在尝试将数据POST到服务器,但在代码中您使用了GET请求。endpoint是否同时接受POST和GET还是仅接受POST。
原始如果您有“名称未解决”错误,您是否确保URL正确?您是否在控制的服务器上运行终结点?它是由您还是第三方托管的?您的DNS查找是否有问题?如果尝试一个已知的工作endpoint,相同的代码是否正常工作?
可能是由很多或各种因素引起的。
白名单插件应自动安装在最新版本的Cordova上。
这是我的配置。xml
<?xml version="1.0" encoding="utf-8"?>
<widget id="au.com.myapp" version="1.0.1" xmlns="http://www.w3.org/ns/widgets" xmlns:vs="http://schemas.microsoft.com/appx/2014/htmlapps">
<name> MyApp</name>
<description>fancy user interfaces for hybrid mobile applications. It uses uses Apache Cordova to help you build an app that targets multiple mobile platforms: Android, iOS, Windows, and Windows Phone.</description>
<author email="admin@myappdomain.com" href="http://myappdomain.com">Author</author>
<content src="index.html" />
<access origin="*" />
<allow-intent href="*" />
<allow-intent href="http://*/*" />
<allow-intent href="https://*/*" />
<allow-intent href="tel:*" />
<allow-intent href="sms:*" />
<allow-intent href="mailto:*" />
<allow-intent href="geo:*" />
<allow-navigation href="*" />
<allow-intent href="itms:*" />
<allow-intent href="itms-apps:*" />
<vs:features />
<preference name="windows-target-version" value="8.1" />
<preference name="windows-phone-target-version" value="8.1" />
<preference name="DisallowOverscroll" value="true" />
<preference name="Orientation" value="portrait" />
<preference name="loglevel" value="DEBUG" />
<preference name="AndroidLaunchMode" value="singleTop" />
<preference name="ErrorUrl" value="" />
<preference name="Fullscreen" value="True" />
<preference name="KeepRunning" value="true" />
<preference name="SplashScreen" value="screen" />
<preference name="AutoHideSplashScreen" value="false" />
<preference name="SplashScreenDelay" value="20000" />
<preference name="FadeSplashScreen" value="false" />
<preference name="FadeSplashScreenDuration" value=".25" />
<preference name="ShowSplashScreenSpinner" value="false" />
<preference name="AllowInlineMediaPlayback" value="false" />
<preference name="BackupWebStorage" value="cloud" />
<preference name="EnableViewportScale" value="false" />
<preference name="KeyboardDisplayRequiresUserAction" value="true" />
<preference name="MediaPlaybackRequiresUserAction" value="false" />
<preference name="SuppressesIncrementalRendering" value="false" />
<preference name="TopActivityIndicator" value="gray" />
<preference name="GapBetweenPages" value="0" />
<preference name="PageLength" value="0" />
<preference name="PaginationBreakingMode" value="page" />
<preference name="PaginationMode" value="unpaginated" />
<feature name="LocalStorage">
<param name="ios-package" value="CDVLocalStorage" />
</feature>
<preference name="UIWebViewDecelerationSpeed" value="normal" />
<preference name="monaca:AndroidIsPackageNameSeparate" value="false" />
<preference name="monaca:targetFamilyiPhone" value="1" />
<preference name="monaca:targetFamilyiPad" value="1" />
<platform name="android">
<icon density="ldpi" src="resources/android/icon/drawable-ldpi/icon.png" />
<icon density="mdpi" src="resources/android/icon/drawable-mdpi/icon.png" />
<icon density="hdpi" src="resources/android/icon/drawable-hdpi/icon.png" />
<icon density="xhdpi" src="resources/android/icon/drawable-xhdpi/icon.png" />
</platform>
<platform name="android">
<splash density="land-hdpi" src="resources/android/drawable-land-hdpi/screen.png" />
<splash density="land-ldpi" src="resources/android/drawable-land-ldpi/screen.png" />
<splash density="land-mdpi" src="resources/android/drawable-land-mdpi/screen.png" />
<splash density="land-xhdpi" src="resources/android/drawable-land-xhdpi/screen.png" />
<splash density="port-hdpi" src="resources/android/drawable-port-hdpi/screen.png" />
<splash density="port-ldpi" src="resources/android/drawable-port-ldpi/screen.png" />
<splash density="port-mdpi" src="resources/android/drawable-port-mdpi/screen.png" />
<splash density="port-xhdpi" src="resources/android/drawable-port-xhdpi/screen.png" />
</platform>
<platform name="ios">
<splash height="480" src="res/screen/ios/Default~iphone.png" width="320" />
<splash height="960" src="res/screen/ios/Default@2x~iphone.png" width="640" />
<splash height="1024" src="res/screen/ios/Default-Portrait~ipad.png" width="768" />
<splash height="2048" src="res/screen/ios/Default-Portrait@2x~ipad.png" width="1536" />
<splash height="768" src="res/screen/ios/Default-Landscape~ipad.png" width="1024" />
<splash height="1536" src="res/screen/ios/Default-Landscape@2x~ipad.png" width="2048" />
<splash height="1136" src="res/screen/ios/Default-568h@2x~iphone.png" width="640" />
<splash height="1334" src="res/screen/ios/Default-667h.png" width="750" />
<splash height="2208" src="res/screen/ios/Default-736h.png" width="1242" />
<splash height="1242" src="res/screen/ios/Default-Landscape-736h.png" width="2208" />
<splash src="res/screen/ios/Default@2x~universal~anyany.png" />
<splash src="res/screen/ios/Default@2x~universal~comany.png" />
<splash src="res/screen/ios/Default@2x~universal~comcom.png" />
<splash src="res/screen/ios/Default@3x~universal~anyany.png" />
<splash src="res/screen/ios/Default@3x~universal~anycom.png" />
<splash src="res/screen/ios/Default@3x~universal~comany.png" />
</platform>
<plugin name="cordova-plugin-camera" spec="~2.4.0" />
<plugin name="cordova-plugin-compat" version="1.1.0" />
<plugin name="cordova-plugin-file" spec="~4.3.2" />
<plugin name="cordova-plugin-inappbrowser" version="1.7.0" />
<plugin name="cordova-plugin-splashscreen" version="4.0.2" />
<plugin name="cordova-plugin-whitelist" version="1.3.2" />
</widget>
Android10不支持“白名单插件”,当我添加Android平台时,它跳过了白名单插件,这在构建或运行应用程序时会导致“文件传输插件”问题 创建应用程序时,会出现以下错误: 任务:app: compileDebugJavaSusJavac D:\workspace\SCL\Platform\android\app\src\main\java\org\apache\cordova\filetran
请原谅我的语言。我在几年前安装了cordova,它以前工作、创建和发布过项目。。我设置了新的windows这次我在编写命令时,每次在相同的windows版本10 i上使用相同的步骤安装cordova: 它给了我这个错误: 安装'cordoa-plugin-whelist'失败:错误: cmd:命令失败,退出代码1在ChildProcess.when完成(C:\xampp\htdocs\test2\
外部域是应用无法控制的,而域名白名单则是一种控制访问外部域的安全模型。Cordova提供了一项可配置的安全策略来定义哪些外部站点可以访问。默认情况下,新的app被配置成可以访问任何站点。然而在发布到生产环境前,你应该制定一份白名单,限制应用可以访问的域名和子域名。 对于Android(从4.0版本起),Cordova的安全策略是通过一个插件接口来扩展的。你的app应该使用cordova-plugi
我正在Heroku上部署后端服务器(节点/express)。它使用Mongodb Atlas作为数据库,应用程序托管在Heroku上。 在开发过程中,我接受了“允许从任何地方访问”,这很好,但对于生产,我认为这是一个安全风险。我似乎找不到我的Heroku服务器的IP地址,因为它似乎不时发生变化。 是否有一些易于实施但又安全的最佳做法?
很多时候,我们需要根据调用来源来判断该次请求是否允许放行,这时候可以使用 Sentinel 的来源访问控制(黑白名单控制)的功能。来源访问控制根据资源的请求来源(origin)限制资源是否通过,若配置白名单则只有请求来源位于白名单内时才可通过;若配置黑名单则请求来源位于黑名单时不通过,其余的请求通过。 调用方信息通过 ContextUtil.enter(resourceName, origin)
我想在我的cordova应用程序中使用谷歌地图插件。我使用以下命令成功创建sha1密钥: keytool-exportcert-alias androiddebugkey-keystore C:\users\morsali.android\debug.keystore-list-v 并且我成功地创建了我的android和IOS密钥。包名称,sha1,...正确导入: 下面是googlemap-pl