2015-05-24 186 views
0

我正在創建將消耗API的Aurelia Web項目。該API作爲Azure移動服務提供。我知道我需要將X-ZUMO Auth頭添加到請求中。但是,當我實例化我的http客戶端時,該頭文件根據瀏覽器開發工具永遠不會將其發送到請求頭文件中。當我在應用程序中運行此應用程序時,出現一個我假設的登錄屏幕,因爲X-ZUMO頭文件不是目前這樣的應用程序沒有權限運行。我正在使用爲我設置Web應用程序的本地實例的gulp。我也嘗試了外部IP地址。Aurelia web應用程序調用azure移動服務API端點

這裏是我的類:

import {HttpClient} from 'aurelia-http-client'; 

export class WebApi 
{ 
static inject = [HttpClient]; 
constructor(http) 
{ 
    this.http = http; 
    this.baseUrl = 'https://myProject.azure-mobile.net/'; 
    this.zumoHeader = 'X-ZUMO-APPLICATION'; 
    this.zumoKey = 'zumoKey'; 
    this.client = new HttpClient() 
     .configure(x => { 
     x.withBaseUrl(this.baseUrl); 
     x.withHeader(this.zumoHeader, this.zumoKey); 
    }); 
} 

// requests will go here 
testGet() 
{ 
    this.client.jsonp('api/logs?application_id=sessionID&__count=20') 
    .then(response => 
    { 
     alert(response); 
    }); 
} 
} 

回答

0

事實證明,你不能使用JSONP方法在這種情況下。 get方法(如果你正在發出get請求)是頭文件被添加的唯一方法。

在此之後,我必須確保服務器可以處理CORS。

import {HttpClient} from 'aurelia-http-client'; 

export class WebApi 
{ 
static inject = [HttpClient]; 
constructor(http) 
{ 
this.http = http; 
this.baseUrl = 'https://myProject.azure-mobile.net/'; 
this.zumoHeader = 'X-ZUMO-APPLICATION'; 
this.zumoKey = 'zumoKey'; 
this.client = new HttpClient() 
    .configure(x => { 
    x.withBaseUrl(this.baseUrl); 
    x.withHeader(this.zumoHeader, this.zumoKey); 
}); 
} 

// requests will go here 
testGet() 
{ 
this.client.get('api/logs?application_id=sessionID&__count=20') 
.then(response => 
{ 
    alert(response); 
}); 
} 
} 
+0

我不認爲有必要將HttpClient注入到類中,假設此示例已完成。 –

相關問題