以json形式获取post-response
Get post response as json
在开始之前,我想对我的英语说声抱歉,这不是我的母语。
我正在尝试为GitHub授权设置OAuth2。
我在步骤中卡住了,我应该向github发送POST请求并接收访问令牌。问题是,当我发送POST请求时,浏览器会自动下载带有访问令牌的文件。由于我不能用javascript打开这个文件,我正在尝试获取json作为响应。
在文档中,我可以更改accept头并接收json,但不能编写正确的POST请求。
我已经尝试了很多东西,比如:
$.ajax({
method: "POST",
url: "https://github.com/login/oauth/access_token",
dataType: "application/json"
});
或
$.ajax({
url: 'https://github.com/login/oauth/access_token',
headers: {
Accept : "application/json",
}
data: "data",
success : function(response) {
console.log(response);
} })
etc
但我得到了这个错误:
XMLHttpRequest无法加载github.com/login/oauth/access_token。请求的资源上不存在"access Control Allow Origin"标头。原点'http://braga.fedyunin.com.ua因此不允许访问。响应的HTTP状态代码为404。
在谷歌上找不到任何有用的信息,所以我不得不在这里注册。谢谢你的帮助。
阅读https://developer.github.com/v3/在一节中:跨来源资源共享
我也尝试了同样的事情,但由于GitHub API的响应中缺少Access-Control-Allow-Origin头,所以也失败了。我联系了GitHub的支持人员,发现了问题所在。
它不起作用,因为您试图从web应用程序使用OAuth,而GitHub API不支持该应用程序。当您以这种方式进行身份验证时,您的client_id和client_secret必须位于网页中的某个位置,并与POST请求一起发送。整个请求,包括您的client_secret,都可以使用Firebug或类似工具查看。因为公开client_secret不是一个好主意,所以GitHub API不会返回Access-Control-Allow-Origin头,从而阻止您检索令牌。
您必须从服务器端发出POST并以这种方式获取令牌。当您这样做时,client_secret在您的服务器上,而不是在人们的浏览器中。
从您的站点到github.com的Ajax请求失败,因为浏览器对xhr请求遵循同源策略。这意味着xhr请求只能针对同一来源上的资源。为了允许跨源请求,服务器需要列出可以访问特定资源的域。
在您的情况下,要做到这一点,您需要在github帐户上将您的网站注册为应用程序,方法是在此处输入详细信息:https://github.com/settings/applications/new
- 如何在php文件中获取$.post-ajax传递的值
- 如何从HTTP上下文对象中获取Post数据
- 如何使用Javascript获取POST请求填充的元素的值
- 以json形式获取post-response
- 可以'当window.location.href时,无法从javascript获取post值
- AJAX请求php获取post/get发送的指定目录中服务器上的文件列表(无JQUERY)
- PHP没有从$.ajax获取POST数据
- 获取post-jquery并在$_post中回显它(这可能吗?)
- 如何使用 AJAX 发送 POST 数据?以及如何在Web API中获取POST数据
- Jquery ajax POST response is null
- 如何从 Javascript AJAX 调用中获取 POST 值到 php
- Javascript AJAX POST Response
- 如何在jQuery中获取POST变量
- 从通过 echo 语句动态添加的表单元素中获取 POST 值
- 通过 AJAX 获取 POST 数据
- 通过 PHP 中的对象从提交按钮获取 POST
- 通过通知 URL 在 Meteor 中获取 POST 请求
- Meteor Iron路由器如何获取POST数据
- 如何通过javascript获取post()方法参数
- 在动态输入区域jquery中获取post数组以插入批代码点火器