Android 找不到Ionic Post请求文件
我试图通过在Android设备(6.0.1)上运行我的应用程序来发出一个简单的post请求。AFAIK执行此操作时没有CORS问题,但控制台输出: (由于某些原因,APIRL正在替换实际url,实际url是IP地址) 我添加了cordova白名单插件并设置了我的内容安全策略:Android 找不到Ionic Post请求文件,android,angularjs,cordova,ionic-framework,Android,Angularjs,Cordova,Ionic Framework,我试图通过在Android设备(6.0.1)上运行我的应用程序来发出一个简单的post请求。AFAIK执行此操作时没有CORS问题,但控制台输出: (由于某些原因,APIRL正在替换实际url,实际url是IP地址) 我添加了cordova白名单插件并设置了我的内容安全策略: <meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' 'unsafe-inline'; script-
<meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval'">
您正在使用相对URL-这无法工作,因为您的index.html加载了
文件://
URL
将http://:/path/to/resource
作为url参数,它应该按预期工作
在安卓平台上运行应用程序时,如果使用
http
作为协议,恐怕不会有太大问题。但你可以预料iOS会出现问题。根据应用程序的类型,通常最好在服务器上使用SSL加密的网络流量。如果您没有SSL证书,请尝试。如注释中所述,您需要确保在url前面加上http://
,否则它将尝试通过file://
访问文件系统,这就是您收到“未找到文件”错误的原因
确保您以以下格式提出请求:
http://:/path/
当您输入IP地址时,是否将其作为http://apiurl
?@AlexChance不,我使用的是单引号中的实际ip地址,没有http@AlexChance非常感谢你!这成功了!不确定您是否在模拟器中运行此功能,但您需要为http添加前缀,否则它将尝试通过本地文件系统进行访问。我将作为答案发布,如果您愿意标记并接受,我将不胜感激:)@AlexChance就可以了!
<meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval'">
$scope.powerPrompt = function() {
var pwr = alert("Power On");
$http.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';
$http({
method: 'POST',
url: 'apiurl',
data: "data to be sent",
headers: {'Content-Type': 'application/x-www-form-urlencoded'}
}).success(function(response) {
// handle success things
alert("success");
})
.error(function(data, status, headers, config) {
// handle error things
})