无法使用POST方法将带有POST方法的GM_xmlhttpRequest从Tampermonkey发送到Scalatra

问题描述 投票:0回答:1

...它的答案:500服务器错误; java.lang.NoSuchMethodError:'void org.scalatra.servlet.RichRequest.update(java.lang.Object,java.lang.Object)'在...在...在...我的代码:

      const ajaxobj =
          { method: "POST"
          , url: url
          , data: '{"q":"anyad"}'   //JSON.stringify(adat)
          , dataType: "json"
          , headers: { "Content-Type": "application/json" }
          , onload: (resp) => { console.log(resp); ... }
          }
      console.log(ajaxobj)
      GM_xmlhttpRequest(ajaxobj)

并且在console.log(ajaxobj)的答案中,我看到:

data: Object { value: "{\"q\":\"anyad\"}" }

而不是字符串,是其“值”成员是字符串的对象。我认为这是scalatra所不喜欢的,因为我可以从其他地方(Angular)向它发送一个字符串,并且它的工作方式就像一种魅力。现在有趣的是:如果我不调用GM_xmlhttpRequest调用(将其注释掉),那么数据将是字符串,而不是对象。

tampermonkey scalatra gm-xmlhttprequest
1个回答
0
投票

我找到了一个实用的解决方案(但是它如何工作,为什么很好,我无法理解其背后的理论):伪造纯字符串(非JSON)传输;从ajax对象中删除属性dataType:“ json”和标头:{“ Content-Type”:“ application / json”}。

© www.soinside.com 2019 - 2024. All rights reserved.