2016-11-23 15 views
0

私はイオン性のアプリケーションを持っています(角度jを使います)。私は、私のlocalserver(ノードエクスプレス)を呼び出すために、矩形のapi($ http.getを使って試してみました)を使っています。私は、次のrestangularコールを試してみました

interceptors.serialNumber = function (element, operation, what, url, headers, query) { 
    return { 
    headers: angular.extend({ 
     'x-serialnumber': deviceStore.serialNumber 
    }, headers) 
    }; 
}; 

Restangular.one('Admin').get() 
    .then(function (data) { 
     console.log(data); 
     }); 
    }, function (error) { 
     console.log(error); 
    }); 

は、私はインターセプタがカスタムヘッダーを追加するために定義されている

RestangularProvider.setBaseUrl('https://localhost:3000'); 

としてベースURLを設定します$ httpコールを使用して次のように入力します。

$http({ 
     method: 'GET', 
     url: 'https://localhost:3000/Admin', 
     headers: { 
      'Content-Type': 'application/json', 
      'x-serialnumber': '000000000' 
     } 
     }).then(function (data) { 
     console.log(data); 
     }, function (error) { 
     console.log(error); 
     }); 

私はいつもdata = null |ステータス= -1 | statusText = ""

サーバー側ではどのリクエストも表示されません。それは直ちに失敗に終わる。

カスタムヘッダーを削除すると、サーバー側でリクエストが表示され、良好な応答(200)が得られます。

私はcorsモジュールを使用しています: var app = express(); app.use(cors());

$http({ 
    method: 'GET', 
    url: 'https://example.com/DUMMY' 
}).then(function successCallback(response) { 
    $http({ 
    method: 'GET', 
    url: 'https://example.com', 
    headers: { 
     'x-serialnumber': deviceStore.serialNumber 
    } 
    }).then(function successCallback(response) { 
    console.log('SUCCESS'); 
    }, function errorCallback(response) { 
    console.log('FAILURE'); 
    }); 
}, function errorCallback(response) { 
    console.log('FAILURE'); 
}); 

は本質的に、私はNOカスタムヘッダーと「予備」GETリクエストを送信するために必要な:

+0

すべての証拠は、deviceStore.serialNumberがnullポインタ例外をスローすることを示しています(deviceStoreは未定義です) – Andonaeus

+0

応答Andonaeusありがとうございます。私はそれがnullではないことを確認した。また、$ httpの場合、ヘッダーの値(x-serialnumber)をハードコードし、長方形の場合と同じエラーを返します – brent

+1

CORSを使用している場合、カスタムヘッダーを許可されたヘッダーのリストに追加しましたか? – Amy

答えて

0

は私が行うために必要なものまあは、以下の通りでした。 GET要求は、私のノードエクスプレスサーバー上のものにすることができます。この "予備"のGETリクエストの後、カスタムヘッダーを含むGETリクエストを実行できます。

具体的にサーバー側で私は以下を参照してください - ステータスコード= -1この「予備は」要求を取得行わず

GET /DUMMY 200 10ms - 2b 
OPTIONS/204 1ms 
GET/200 13ms - 1.03kb 

を、私のイオンAppのOPTIONS要求は、中止だろう - 通常、リクエストが中止され、Ionic App側から離れることはありません。

私はまだこの "予備" GET要求が必要な理由を理解できませんが、これは私のために働きます。

関連する問題