Vue.js 实施ld+;json使用Nuxt和_危险的可删除清理程序

Vue.js 实施ld+;json使用Nuxt和_危险的可删除清理程序,vue.js,nuxt.js,Vue.js,Nuxt.js,我正在使用nuxt.js,需要使用ld+json为google使用结构化数据 我将使用已填充的动态数据,并通过JSON.stringify方法运行它 我是否正确地将其用于XXS脚本?我还需要通过危险禁用消毒剂,因为我不确定提供的文件上是否有 head(){ let user = this.user; return { title: 'This is my page title', meta: [ { hid: 'descri

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

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

我是否正确地将其用于XXS脚本?我还需要通过危险禁用消毒剂,因为我不确定提供的文件上是否有

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']
    }
},
是的,没错

但是由于Nuxt.js使用vue meta v2.1,如果您使用
JSON
属性,则
JSON.stringify
\uu危险禁用的Sanitarizers
无效:

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 docs:

好的,谢谢…..当我在源代码中查看json对象时,我的json对象中会出现文本…..这是否正确?我们';关于澳大利亚';或者在源代码中应该是澳大利亚的?是的,这是一个正确的值。正如docs()中所解释的,您的文本只是经过了清理:“当将数组或对象传递给json属性时,变量的键和值仍将被清理以防止XSS”@NicolasPennec I copy pasted json ld sanitized text..in看起来google没有识别它。@GeorgeAlvis您使用了哪个版本的nuxt&vute meta?(请运行“npm list nuxt vue meta”)。使用nuxt 2.12.2(+vue meta 2.3.3作为children dep)它对我来说很好@NicolasPennec我从来没有说过它不起作用……我的观点是,当我在测试工具中测试时,谷歌没有验证经过消毒的json