【问题标题】:Can't send data with GM_xmlhttpRequest from Tampermonkey with POST method to Scalatra无法使用 GM_xmlhttpRequest 从 Tampermonkey 使用 POST 方法将数据发送到 Scalatra
【发布时间】:2020-09-10 12:10:45
【问题描述】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-18
      • 2017-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-09
      相关资源
      最近更新 更多