清单是无效的JSON.行:1,列:1,意外的令牌

Jos*_*ung 24 json google-chrome-extension

继续收到此错误:"Manifest无效JSON.行:1,列:1,意外令牌." 我不明白我的代码是什么问题?这是我到目前为止:

{
    "manifest_version": 2,
    "name": "extension",
    "version": "1.0",
    "description": "My first Chrome extension.",
    "browser_action": {
        "default_icon": "icon.jpg",
        "popup": "popup.html"
    }
}
Run Code Online (Sandbox Code Playgroud)

ANI*_*TEL 11

我添加了 crossorigin 属性,它起作用了。

<link rel="manifest" crossorigin="use-credentials" href="%PUBLIC_URL%/manifest.json" />
Run Code Online (Sandbox Code Playgroud)


Sno*_*ogg 10

我在Visual Studio 2010中使用Build Action:None设置了manifest.json文件属性.

在Visual Studio中将内容更改为内容可确保在部署时传输文件.

在此输入图像描述

也许你的问题类似.

编辑

鉴于我的downvote我认为我应该扩展并说我的观点是,鉴于在第1行,第1列有有效的json,你更有可能得到404 http响应而不是返回的实际json文件.

所以也许文件不在正确的位置或服务器没有权限或其他什么,但上面是我的错误.不可否认,它可能过于具体到我的错误,而不是你的错.

但一般情况仍然存在,更可能是因为Web服务器返回json文件的http响应,检查浏览器中网络日志中的响应.


Dat*_*sos 5

内容类型

在“网络”选项卡中检查manifest.json的Content-Type。这需要是application / json而不是text / html

如果内容类型错误,则可能需要配置Web服务器的设置以正确提供json文件。

就我而言,我必须将其添加到启用了Nginx 网站的文件中:

位置〜*。(jpg | jpeg | gif | png | css | js | ico | xml | svg | json)$


Alf*_*ace 5

由于扩展名(MIME 类型),浏览器无法找到清单。在 Chrome DevTools > Network > Headers > Content-Type 中,清单的内容类型必须与实际清单文件扩展名(.json.webmanifest)匹配。要解决 404 错误,您需要在以下位置声明文件类型web.config

<staticContent>
  <mimeMap fileExtension=".json" mimeType="application/json" />
  <mimeMap fileExtension=".webmanifest" mimeType="application/manifest+json" />
</staticContent>
Run Code Online (Sandbox Code Playgroud)


小智 4

看来您对browser_action键使用了错误的值。要指定弹出模板,您必须使用default_popup。它应该是 :

{
  "manifest_version": 2,
  "name": "extension",
  "version": "1.0",
  "description": "My first Chrome extension.",
  "browser_action": {
      "default_icon": "icon.jpg",
      "default_popup": "popup.html"
  }
}
Run Code Online (Sandbox Code Playgroud)