Javascript 422错误';不可加工实体';从Chrome扩展调用API时

Javascript 422错误';不可加工实体';从Chrome扩展调用API时,javascript,ruby-on-rails,google-chrome,google-chrome-extension,Javascript,Ruby On Rails,Google Chrome,Google Chrome Extension,我正在构建一个Chrome扩展,旨在将用户当前页面上的信息(url、标题等)发送到带有Rails后端的RESTAPI。当我使用Postman测试API时,API调用会起作用,但当我通过扩展发送数据时,我会收到422(不可处理实体)错误 此文件侦听“单击我的扩展名”: 函数列表单击(){ const button=document.getElementById('send-data'); 按钮。addEventListener('单击',()=>{ chrome.tabs.executeScrip

我正在构建一个Chrome扩展,旨在将用户当前页面上的信息(url、标题等)发送到带有Rails后端的RESTAPI。当我使用Postman测试API时,API调用会起作用,但当我通过扩展发送数据时,我会收到
422(不可处理实体)
错误

此文件侦听“单击我的扩展名”:

函数列表单击(){
const button=document.getElementById('send-data');
按钮。addEventListener('单击',()=>{
chrome.tabs.executeScript({
文件:“scripts/send data.js”
});
})
}
listenClick();
这是
发送数据.js
文件:

function fetchData() {
  title = document.querySelector('title').innerText;
  const url = window.location.href;

  return {
    title: title,
    url: url
  }
}

function sendData(data){
  const url = 'http://localhost:3000/api/v1/bookmarks';
  fetch(url, {
    method: 'POST',
    headers: {
      "Content-Type": "application/json",
      "X-User-Email": "test@mail.com",
      "X-User-Token": "asdfkljIOJDHalsdfkla"
    },
    body: JSON.stringify({
      "title": `${data.title}`,
      "url": `${data.url}`,
    })
  })
}

sendData(fetchData());
错误发生在以
'X-User-Email'
开头的行上。我正在使用
'simple\u token\u authentication'
gem对用户进行身份验证,它使用这些头


有人能帮我看看我遗漏了什么吗?

意识到问题出在我的ruby代码上,而不是上面引用的js.file。查看rails日志帮助我认识到这一点

尝试更改标题的内容类型标题:{'Content Type':'application/x-www-form-urlencoded;charset=UTF-8;application/json'}

现代Chrome不允许内容脚本中的跨源请求,请参阅。在后台脚本中执行请求。检查rails日志。请求是否到达rails应用程序<代码>422错误来自rails应用程序或
Chrome不允许跨源请求
。如果来自rails应用程序的
422错误
:比较请求
参数
,并在此处共享两个请求日志。所以,我们可以帮助你。我检查了rails日志,问题实际上是我的ruby代码。我将书签分配给一个特定用户不存在的集合。谢谢你的提示@Mahfuz你能解释一下吗?