Jquery 来自附加SDK的AJAX Put请求

Jquery 来自附加SDK的AJAX Put请求,jquery,firefox,request,firefox-addon,firefox-addon-sdk,Jquery,Firefox,Request,Firefox Addon,Firefox Addon Sdk,在过去的3个小时里,我一直在努力从main.js/index.js页面向Firefox插件发出put请求,但运气不好 从文档中可以看出,这是要调用的正确AJAX(如果您想编辑它,请使用正确的站点) $.ajax({ url:“https://api.myjson.com/bins/1ihp9", 键入:“放置”, 数据:“{”键更新“:“值更新”}”, contentType:“应用程序/json;字符集=utf-8”, 数据类型:“json”, 成功:函数(数据、文本状态、jqXHR){ }

在过去的3个小时里,我一直在努力从main.js/index.js页面向Firefox插件发出put请求,但运气不好

从文档中可以看出,这是要调用的正确AJAX(如果您想编辑它,请使用正确的站点)

$.ajax({
url:“https://api.myjson.com/bins/1ihp9",
键入:“放置”,
数据:“{”键更新“:“值更新”}”,
contentType:“应用程序/json;字符集=utf-8”,
数据类型:“json”,
成功:函数(数据、文本状态、jqXHR){
}
});
Firefox插件的SDK不使用
$.ajax()
,而是使用
Request()
。因此,我将代码设置为:

var latestTweetRequest=请求({
url:“https://api.myjson.com/bins/1ihp9",
//updatedjson是文档中要求的字符串
内容:updatedjson,
标题:{
“contentType”:“application/json;charset=utf-8”,
“数据类型”:“json”
},
未完成:功能(响应){
控制台日志(响应);
}
});
latestTweetRequest.put();
但无论我做什么,它都不起作用。响应结果为“构造函数{})


我可以对站点执行get请求。遗憾的是,请求对象不允许您处理错误,因此当出现问题时,您会感到困惑。如果您需要更多控制,可以尝试使用
net/xhr
模块

我不确定这里的问题是什么,但似乎服务器不喜欢它看到的对象

我发现返回了此错误消息(作为JSON对象):

这段代码将您的请求包装在一个20秒的延迟计时器中,即Firefox启动并运行此附加代码后的20秒,因此时间不多,但足以完成此任务

一旦Firefox通过
jpm run
命令启动,立即进入“工具”菜单。打开“工具”->“Web开发者”->“浏览器工具箱”。打开的窗口看起来像Firefox开发工具,但实际上是在调试整个浏览器。现在快速转到“网络”选项卡,如果您在20秒内完成所有操作,您将查看您的网络请求并能够对其进行检查


祝您好运!

您是否已在“网络”选项卡中签出请求?是否返回了任何错误代码?呼叫是否仍在进行?您是否尝试过标准get以查看是否可以接收数据?
{
status:500
message:"Internal Server Error"
more_info:"undefined method `string' for #<PhusionPassenger::Utils::TeeInput:0x007fcf73b9bd98>"
}
var { setTimeout } = require("sdk/timers");
setTimeout(function() {
  var latestTweetRequest = Request({
          url: "https://api.myjson.com/bins/1ihp9",
          content: updatedjson,    //updatedjson is a string here, as requested in documentation
          headers: {
              "contentType" : "application/json; charset=utf-8",
              "dataType" : "json"
          },
          onComplete: function (response) {
            console.log(response);
          },
          onError: function (err) {
            console.error(err);
          }
      });
      latestTweetRequest.put();

}, 1000 * 20);