javascript – 在浏览器中调用oAuth2 api时出现404错误
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – 在浏览器中调用oAuth2 api时出现404错误,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2927字,纯文字阅读大概需要5分钟。
内容图文
![javascript – 在浏览器中调用oAuth2 api时出现404错误](/upload/InfoBanner/zyjiaocheng/782/71e8a39e0cb74fde9eec4d3cdceb30de.jpg)
我在rails上使用ruby来制作RESTful api,还使用了doorkeeper来处理身份验证和授权.如你所知,门卫会生成一些OAuth2 api,而我需要使用的两个是/ users,这是post请求和/ oauth / token为我做的令牌.我做的api是post,get,put在postman和android studio以及web浏览器中工作.
但由门卫生成的后api / users和/ oauth / token在网络浏览器中不起作用,但在android studio和postman上工作得很好.
这对我来说很困惑.我在调用这个api时遇到的错误是404,我检查了服务器上的ruby生产日志,它说没有路由匹配.这里的字符串是方法和路由的类型是正确的.
这是我在reactjs中使用的代码.我使用了axios:
var url="http://x.x.x.x/oauth/token";
axios.post(url,{
"username":"1",
"password":"password",
"grant_type":"password"
},{headers:{"Content-Type":"application/json"}}).then( (response) => {
console.log(response.data);
})
.catch( (error) => {
console.log(JSON.stringify(error));
});
并且还使用原始jQuery来发出请求并获得相同的错误.所有我的api都很好地执行了这两个api:
var firstname = document.forms["registerForm"]["first_name"].value;
var lastname = document.forms["registerForm"]["last_name"].value;
var pass = document.forms["registerForm"]["password"].value;
var passconfirm = document.forms["registerForm"]["password_confirmation"].value;
var json_data = {
"async": true,
"crossDomain": true,
"url": send,
"method": "POST",
"headers": {
"content-type": "application/json",
},
"processData": false,
"data":
{
"user": {
"user_name": username,
"password": pass,
"password_confirmation": passconfirm,
"user_type": "admin"
},
"profile": {
"first_name": firstname,
"last_name": lastname
}
}
}
$.ajax(json_data).done(function (response) {
console.log(response);
});
console.log(json_data['data']);
console.log(username);
此代码console.log的输出(JSON.stringify(error));这是:
{"config":{"transformRequest":{},"transformResponse":{},"timeout":0,"xsrfCookieName":"XSRF-TOKEN","xsrfHeaderName":"X-XSRF-TOKEN","maxContentLength":-1,"headers":{"Accept":"application/json, text/plain, */*","Content-Type":"application/json;charset=utf-8"},"method":"post","url":"http://x.x.x.x/oauth/token.json","data":"{\"username\":\"1\",\"password\":\"password\",\"grant_type\":\"password\"}"},"request":{}}
我在浏览器中找到请求标头和响应标头:
Response Header:
Content-Type
application/json; charset=UTF-8
Content-Length
34
Connection
keep-alive
Status
404 Not Found
X-Request-Id
d593b73f-eec8-41cd-95cd-e4459663358c
X-Runtime
0.002108
Date
Mon, 13 Nov 2017 11:19:26 GMT
X-Powered-By
Phusion Passenger 5.1.11
Server
nginx/1.12.1 + Phusion Passenger 5.1.11
Request headers (427 B)
Host
x.x.x.x
User-Agent
Mozilla/5.0 (X11; Ubuntu; Linu…) Gecko/20100101 Firefox/56.0
Accept
text/html,application/xhtml+xm…plication/xml;q=0.9,*/*;q=0.8
Accept-Language
en-US,en;q=0.5
Accept-Encoding
gzip, deflate
Access-Control-Request-Method
POST
Access-Control-Request-Headers
Origin
http://localhost:3000
Connection
keep-alive
解决方法:
这似乎是因为CORS政策.你可以rack-cores.
它是一个机架中间件,您可以向受门卫保护的应用程序发出跨域请求
内容总结
以上是互联网集市为您收集整理的javascript – 在浏览器中调用oAuth2 api时出现404错误全部内容,希望文章能够帮你解决javascript – 在浏览器中调用oAuth2 api时出现404错误所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。