12345678910111213141516171819202122232425262728293031323334 |
- 'use strict';
- const jsonpBody = require('jsonp-body');
- const { JSONP_CONFIG } = require('../../lib/private_key');
- module.exports = {
- /**
- * detect if response should be jsonp
- */
- get acceptJSONP() {
- return !!(this[JSONP_CONFIG] && this[JSONP_CONFIG].jsonpFunction);
- },
- /**
- * JSONP wrap body function
- * Set jsonp response wrap function, other plugin can use it.
- * If not necessary, please don't use this method in your application code.
- * @param {Object} body respones body
- * @private
- */
- createJsonpBody(body) {
- const jsonpConfig = this[JSONP_CONFIG];
- if (!jsonpConfig || !jsonpConfig.jsonpFunction) {
- this.body = body;
- return;
- }
- this.set('x-content-type-options', 'nosniff');
- this.type = 'js';
- body = body === undefined ? null : body;
- // protect from jsonp xss
- this.body = jsonpBody(body, jsonpConfig.jsonpFunction, jsonpConfig.options);
- },
- };
|