当前位置: 首页 > 面试题库 >

使用ajax和JavaScript POST到GitHub v3 API失败,并显示HTTP 404

华季萌
2023-03-14
问题内容

我试图按照文档https://developer.github.com/v3/git/blobs/#create-a-
blob
在JavaScript /
jQuery中将blob发布到GitHub API- 但是我一直收到404请求

我当前在JavaScript中的请求如下所示:

var uploadURL ="https://api.github.com/repos/daniellevass/web-quiz/git/blobs" + accessToken;

console.log(uploadURL);

$.ajax({
  type: "POST",
  dataType: "jsonp",
  url: uploadURL,
  data:{
      "content": "my message",
      "encoding": "utf-8"
    }
})
  .done(function( data ) {
    console.log( data );
  });

控制台吐出以下URL(访问令牌正确):

https://api.github.com/repos/daniellevass/web-quiz/git/blobs?access_token=xxx

我得到以下回应:

data: Object
    documentation_url: "https://developer.github.com/v3"
    message: "Not Found"
    __proto__: Object
meta: Object
   X-Accepted-OAuth-Scopes: "repo"
   X-GitHub-Media-Type: "github.v3"
   X-OAuth-Scopes: "gist, repo, user"
   X-RateLimit-Limit: "5000"
   X-RateLimit-Remaining: "4992"
   X-RateLimit-Reset: "1401550358"
   status: 404
   __proto__: Object
__proto__: Object

响应在meta对象中显示,我已请求请求正确的OAuth范围。我还可以使用GitHub api和ajax成功获取任何数据-例如用户存储库列表。

我怀疑自己的POST请求可能有问题,但是我不知道哪里出了问题,因此非常感谢任何帮助或建议!

谢谢,

丹妮尔


问题答案:

您不能使用JSONP发出非GET请求。

但是,好消息是,由于API支持CORS,因此您不需要使用JSONP 。

试试看:

var uploadURL ="https://api.github.com/repos/daniellevass/web-quiz/git/blobs" + accessToken;

console.log(uploadURL);

$.ajax({
  type: "POST",
  url: uploadURL,
  contentType: "application/json",
  dataType: "json",
  data: JSON.stringify({
      "content": "aGVsbG8=",
      "encoding": "utf-8"
    })
})
  .done(function( data ) {
    console.log( data );
  });


 类似资料:
  • 但是得到一个错误: Py4JJavaError:调用o41时出错。显示字符串:组织。阿帕奇。火花SparkException:作业因阶段失败而中止:阶段1.0中的任务0失败1次,最近一次失败:阶段1.0中的任务0.0丢失(TID 1)(10.75.81.111执行器驱动程序):org。阿帕奇。火花SparkException:Python worker无法连接回。

  • 问题内容: 我在使用Python 2.7(Anaconda)的OSX El Capitan。启动命令将产生: 这些都不起作用(退出时出现相同的错误)。 已是最新。我基本上尝试遵循相关问题中的所有建议,但没有成功。任何帮助表示赞赏,谢谢! 问题答案: 从此博客复制。 通过查找可能得出结论的信息,即brew安装的配置可能不正确,请打开脚本以修改其中的某些内容: 变成: 保存 然后重新安装mysql-p

  • 问题内容: 我想不断详细说明数据集流的行(最初由Kafka发起):基于条件,我想更新Radis哈希。这是我的代码段(是上一个命令的结果,该命令是这种类型的流:。扩展为): 我收到一个巨大的堆栈跟踪,相关部分(我认为)是这样的: 谁能解释为什么发生此异常以及如何避免?谢谢! 问题答案: Spark上下文不可序列化。 ForeachWriter的任何实现都必须可序列化,因为每个任务都将获得所提供对象的

  • 问题内容: 我的网络中有一个ActiveMQ代理,监听1883(mqtt)。如果我使用简单的Java应用程序和mqtt- client-0.4.0.jar库连接到该代理,则一切正常。 现在,我想使用Android设备连接到该代理。不幸的是,我无法管理它以成功建立连接。我总是收到以下错误: 我使用的是Android服务,该服务调用。 另外作为图书馆,我正在使用: 按照我的工人的代码: 到目前为止我尝

  • 问题内容: 这是我得到的错误 我该怎么解决? 问题答案: 看来你的系统上缺少或安装程序找不到它。确保确实安装了。 例如,在上,你必须安装软件包: 也许不在你的路径中,当你自己编译mysql套件时就是这种情况。 更新:对于最新版本的(截至2018年),它是

  • 我有一个多项目gradle构建,Spring Boot按照默认gradle约定进行结构化。 我目前的项目是(A)将gradle从5. x升级到7.3. x,(B)使用带有Spring Boot的嵌入式Tomcat。 这是一个已经存在很多年的项目,是Spring Boot,但是传统上一直作为一个战争文件部署在Tomcat中。 我已经按照gradle迁移指南将gradle升级到7.3.3,并正确构建了