使用Nuxt和__dangerouslyDedableSanitizers

时间:2020-04-30 05:03:38

标签: vue.js nuxt.js

我正在使用nuxt.js,需要使用ld + json为Google使用结构化数据

我将使用填充了动态数据并通过JSON.stringify方法运行的动态数据。

我可以正确地将此代码用于XXS脚本吗?我还需要通过__dangerouslyDisableSanitizers,因为不确定所提供的文档吗?

head(){
    let user = this.user;
    return {
        title: 'This is my page title',
        meta: [
            { hid: 'description', name: 'description', content: 'This is my description' }
        ],
        script: [
            {
                innerHTML: JSON.stringify({
                    '@context': 'http://schema.org',
                    '@type': 'Website',
                    'url': `${user}`
                }), 
                type: 'application/ld+json'
            }
        ],
        __dangerouslyDisableSanitizers: ['script']
    }
},

1 个答案:

答案 0 :(得分:1)

是的,这是正确的。

但是由于Nuxt.js使用了vue-meta v2.1,因此如果您使用JSON.stringify属性,则__dangerouslyDisableSanitizersjson是没有用的:

head(){
    let user = this.user;
    return {
        title: 'This is my page title',
        meta: [
            { hid: 'description', name: 'description', content: 'This is my description' }
        ],
        script: [
            {
                json: {
                    '@context': 'http://schema.org',
                    '@type': 'Website',
                    'url': `${user}`
                }, 
                type: 'application/ld+json'
            }
        ]
    }
},

请参阅vue-meta文档:https://vue-meta.nuxtjs.org/api/#add-json-data