相关疑难解决方法(0)

使用Android Hybid应用程序来显示Ionic框架的远程图像问题?

我是Ionic的新手.我正在使用Ionic Framework(1.3.20),Angular JS,Cordova 5.0.0

模板文件 browse.html代码:

<div class="col-50"><img ng-src="{{availableImages[currentImage].src}}" /></div>
Run Code Online (Sandbox Code Playgroud)

app.js代码:

.state('app.browse', {
    url: "/browse",
    views: {
      'menuContent': {
        templateUrl: "templates/browse.html",
        controller: 'Ctrl'
      }
    }
  })
Run Code Online (Sandbox Code Playgroud)

controller.js代码

.controller('Ctrl',function($scope) {
      $scope.currentImage = 0;
      $scope.availableImages = [
        {
          src: "http://lorempixel.com/160/160/people/3"
        }
        ];
      console.log("reading image in controller !!!");
})
Run Code Online (Sandbox Code Playgroud)

标题详细信息:

Request URL:http://lorempixel.com/160/160/people/3
Request Method:GET
Status Code:404 Not Found (from cache)
Response Headers
Client-Via:shouldInterceptRequest
Request Headers
Provisional headers are shown
Accept:image/webp,*/*;q=0.8
User-Agent:Mozilla/5.0 (Linux; Android 5.0.2; XT1033 Build/LXB22.46-28; wv) AppleWebKit/537.36 (KHTML, like …
Run Code Online (Sandbox Code Playgroud)

javascript angularjs cordova hybrid-mobile-app ionic

16
推荐指数
2
解决办法
2万
查看次数

离子应用程序无法使用$ http连接启用了cors的服务器

我正在尝试使用离子框架构建移动应用程序.当我的应用程序尝试连接服务器以获取json(服务器是web api和cors已启用)时,它只会在genymotion和真实设备上返回404.但是当我在浏览器中运行应用程序时,ionic serve一切正常.

我很确定CORS是功能性的.我在应用程序在浏览器中工作时得到的响应头.

响应

Access-Control-Allow-Origin:*
Cache-Control:no-cache
Content-Length:395
Content-Type:application/json; charset=utf-8
Date:Fri, 08 May 2015 20:24:04 GMT
Expires:-1
Pragma:no-cache
Server:Microsoft-IIS/7.0
X-AspNet-Version:4.0.30319
X-Powered-By:ASP.NET
Run Code Online (Sandbox Code Playgroud)

要求:

Accept:application/json, text/plain, */*
Accept-Encoding:gzip, deflate, lzma, sdch
Accept-Language:tr-TR,tr;q=0.8,en-US;q=0.6,en;q=0.4
Cache-Control:no-cache
Connection:keep-alive
DNT:1
Host:*******:14400
Origin:http://192.168.0.28:8100
Pragma:no-cache
Referer:http://192.168.0.28:8100/
Run Code Online (Sandbox Code Playgroud)

Config.xml <access origin="*"/>在配置中有 这一行

在我的app.js中,我删除了所有http调用的X-Requested-With标头.

.config(['$httpProvider', function($httpProvider) {

        $httpProvider.defaults.useXDomain = true;
        delete $httpProvider.defaults.headers.common['X-Requested-With'];  
    }
])
Run Code Online (Sandbox Code Playgroud)

我简单地在工厂类中使用get request to server.

$http.get(serverPath + "/api/mobilerest/mainPage");
Run Code Online (Sandbox Code Playgroud)

当我在Genymode或真实设备中运行应用程序时,响应为404,statusText为"未找到".我很确定web api正在工作,这种行为的原因是基于离子的应用程序,我的应用程序是本地文件,协议是file:///所以Origin头部在请求中为null,然后服务器返回404.我也试过没有任何服务器的本地文件我得到了与应用程序相同的错误.

Accept:*/*
Accept-Encoding:gzip, deflate, sdch
Accept-Language:tr-TR,tr;q=0.8,en-US;q=0.6,en;q=0.4
Cache-Control:no-cache
Connection:keep-alive
DNT:1
Host:server:14400
Origin:null
Pragma:no-cache
Run Code Online (Sandbox Code Playgroud)

我错过了什么吗?

http cors angularjs asp.net-web-api2 ionic-framework

12
推荐指数
1
解决办法
1万
查看次数