使用 Javascript HTTP 请求登录站点?
Logging Into Site Using Javascript HTTP Request?
我正在尝试使用 http 请求和解析登录到我的 nike 帐户。这是我的要求:
Parse.Cloud.httpRequest({
method: 'POST',
headers: {
'Content-Type' : 'application/x-www-form-urlencoded; charset=UTF-8'
},
url: 'https://www.nike.com/profile/login',
params: {
'Content-Locale' : 'en_US',
},
body: {
'login' : <userId>,
'rememberMe' : 'true',
'password' : '<password>'
}
}).then(function(httpResponse) {
//Log
console.log(httpResponse.text);
}, function(httpResponse) {
//Log
console.error('Request failed with response code ' + httpResponse.status);
});
我正在使用 rest 来调用我的函数,它工作正常。唯一的问题是它不断返回 403
错误。我的请求有什么问题吗?
这是我在通过浏览器登录时在 Safari 中发现的实际请求的所有信息(注意:我是 http 请求的新手)。
更新:
上图是使用网络浏览器进行的有效登录。
此外,这里有一张请求和响应部分的图片以了解更多详细信息:
如果您一直看到 403 - Forbidden
响应,我认为您的请求结构没有任何问题。这意味着您的请求因 cross-origin 限制、不当或意外请求 headers and/or 欺骗您的推荐人和来源等原因而被拒绝。
但由于不知道耐克登录服务的细节,我们只能推测。
如果您的请求存在根本性错误,我希望看到其他 HTTP 响应,例如 400 Bad Request
、406 Not Acceptable
、500 Timeout
等。
为了正确回答,我们需要了解有关您发出请求的环境的更多详细信息。这是本地服务器吗?您是可以访问内部 nike.com 环境的 Nike 开发人员吗?这个 HTTP 请求是从哪里发起的?
根据所提供的信息,我能建议的最好的是一些有助于进一步排除故障的工具:
- Charles Proxy:监控所有传出请求+响应
- Postman:以更纯粹的方式方便地测试请求结构,browser/tech不可知的方式
我还不能 post 超过 2 个链接,但搜索 cross origin access
和 http status codes
以获取有关一般 HTTP 请求的更多详细信息。
如 rkd 所说,403 是禁止的。服务器拒绝您的请求。我认为这不是 cross-origin 限制,因为在第二张图片中出现 Access-control-allowed:true。检查是否设置了以前的 cookie。查看第一张图片,在 headers 中是否有 "set-cookie" 并且它的值。但无论如何,需要更多关于 headers 的信息才能做出更好的回应。
我正在尝试使用 http 请求和解析登录到我的 nike 帐户。这是我的要求:
Parse.Cloud.httpRequest({
method: 'POST',
headers: {
'Content-Type' : 'application/x-www-form-urlencoded; charset=UTF-8'
},
url: 'https://www.nike.com/profile/login',
params: {
'Content-Locale' : 'en_US',
},
body: {
'login' : <userId>,
'rememberMe' : 'true',
'password' : '<password>'
}
}).then(function(httpResponse) {
//Log
console.log(httpResponse.text);
}, function(httpResponse) {
//Log
console.error('Request failed with response code ' + httpResponse.status);
});
我正在使用 rest 来调用我的函数,它工作正常。唯一的问题是它不断返回 403
错误。我的请求有什么问题吗?
这是我在通过浏览器登录时在 Safari 中发现的实际请求的所有信息(注意:我是 http 请求的新手)。
更新:
上图是使用网络浏览器进行的有效登录。
此外,这里有一张请求和响应部分的图片以了解更多详细信息:
如果您一直看到 403 - Forbidden
响应,我认为您的请求结构没有任何问题。这意味着您的请求因 cross-origin 限制、不当或意外请求 headers and/or 欺骗您的推荐人和来源等原因而被拒绝。
但由于不知道耐克登录服务的细节,我们只能推测。
如果您的请求存在根本性错误,我希望看到其他 HTTP 响应,例如 400 Bad Request
、406 Not Acceptable
、500 Timeout
等。
为了正确回答,我们需要了解有关您发出请求的环境的更多详细信息。这是本地服务器吗?您是可以访问内部 nike.com 环境的 Nike 开发人员吗?这个 HTTP 请求是从哪里发起的?
根据所提供的信息,我能建议的最好的是一些有助于进一步排除故障的工具:
- Charles Proxy:监控所有传出请求+响应
- Postman:以更纯粹的方式方便地测试请求结构,browser/tech不可知的方式
我还不能 post 超过 2 个链接,但搜索 cross origin access
和 http status codes
以获取有关一般 HTTP 请求的更多详细信息。
如 rkd 所说,403 是禁止的。服务器拒绝您的请求。我认为这不是 cross-origin 限制,因为在第二张图片中出现 Access-control-allowed:true。检查是否设置了以前的 cookie。查看第一张图片,在 headers 中是否有 "set-cookie" 并且它的值。但无论如何,需要更多关于 headers 的信息才能做出更好的回应。