2016-05-12 4 views
0

私のエクスプレス、nodejsアプリケーションからjsonpを返そうとしていて、アプリケーション/ javascriptの代わりにテキスト/私は正しいContent-Typeでなければならないと思います)。私は、私は結果を返すときにコンテンツタイプを設定しようとした8 < IEに関するさまざまな方法を以下に示し悩まされておりません。ノード、エクスプレスアプリは、アプリケーション/ javacriptを設定しているにもかかわらず、text/javascriptレスポンスヘッダ(Content-Type)を返す

// Method 1 
res.setHeader('Content-Type', 'application/javascript'); 
res.status(200).jsonp(result); 

// Method 2 
res.format({ 
    'application/javascript': function() { 
     res.status(200).jsonp(result); 
    } 
}); 

// Method 3 
res.set('Content-Type', 'application/javascript'); 
res.status(200).jsonp(result); 

しかし、私は取得のContent-Typeが何であるかに関係なく、以下に示すように、常にtext/javascriptです。私はまた、応答ヘッダーに 'nosniff'ヘッダーを2回取得します。 - /私は完全にチェックしたnginx.confファイルに1回しかありません。 nginx-tを実行しても、configは正常であると言います。

HTTP/1.1 200 OK 
Server: nginx 
Date: Thu, 12 May 2016 05:06:28 GMT 
Content-Type: text/javascript; charset=utf-8 
Content-Length: 433 
Connection: keep-alive 
Keep-Alive: timeout=5 
X-Powered-By: Express 
Vary: Accept 
X-Content-Type-Options: nosniff 
ETag: W/"1b1-1ZnUnapTaayP/+6QW4iqXQ" 
Expires: Thu, 31 Dec 2037 23:55:55 GMT 
Cache-Control: max-age=315360000 
Strict-Transport-Security: max-age=315360000; includeSubdomains 
X-Content-Type-Options: nosniff 
X-Frame-Options: SAMEORIGIN 
X-XSS-Protection: 1; mode=block 
X-Robots-Tag: none 

私は 'upstream thingy'を使用してリバースプロキシとしてnginxを使用しています。自分のアプリケーションでbodyParserも使用しています。私がノード/エクスペリエンスを絶対に新しくしているので、それ以上の情報が必要な場合は教えてください。ありがとう

答えて

0

私は恐らく、コンテンツタイプがExpressでハードコードされています。 hereを参照してください。

それを見て、唯一の方法は.jsonp()を自分で再実装することです(または、GitHubでExpressデベロッパーに修正してもらうための問題を作成する)。

+0

ありがとうございます。それはそうだ:) –

関連する問題