【发布时间】:2018-08-10 08:45:25
【问题描述】:
您好,我正在使用本机反应,并且我在带有请求 js 的节点中有一个请求。我不想再在服务器上发出请求了。我想在前端做。我决定使用获取。 但是当我在前端做同样的请求时,我得到内部服务器错误 500 我只想要从响应中得到的 cookie。
这适用于节点:
var request = require('request');
var dataString2 = 'lmaction=doLogin&username=XXX&password=XXX';
var options2 = {
url: 'https://onlineservice.klarmobil.de/login',
method: 'POST',
headers:{
'Host': 'onlineservice.klarmobil.de',
'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:55.0) Gecko/20100101 Firefox/55.0',
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Accept-Language': 'de,en-US;q=0.7,en;q=0.3',
'Referer': 'https://www.klarmobil.de/',
'Content-Type': 'application/x-www-form-urlencoded',
'Connection': 'keep-alive',
'Upgrade-Insecure-Requests': '1',
'Cookie': '_gali=kundenlogin'
},,
body: dataString2
};
function callback2(error, response, body) {
const cookie= response.headers['set-cookie'][0].split(";")[0]
}
request(options2, callback2);
这是我在 react native 中的代码:
fetch('https://onlineservice.klarmobil.de/login', {
method: 'POST', // or 'PUT'
body: 'lmaction=doLogin&username=xxx&password=xxx'
headers:{
'Host': 'onlineservice.klarmobil.de',
'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:55.0) Gecko/20100101 Firefox/55.0',
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Accept-Language': 'de,en-US;q=0.7,en;q=0.3',
'Referer': 'https://www.klarmobil.de/',
'Content-Type': 'application/x-www-form-urlencoded',
'Connection': 'keep-alive',
'Upgrade-Insecure-Requests': '1',
'Cookie': '_gali=kundenlogin'
}
})
.catch(error => console.log('Error:', error))
.then((res)=>{
console.log(res)
const cookie= response.headers['set-cookie'][0].split(";")[0]
console.log(cookie)
})
有人可以帮助我吗?
【问题讨论】:
-
i get internal server error 500- 检查服务器日志以了解错误原因 -
请求的服务器不是我的。您是否收到节点内部服务器错误 500?
-
是吗?不,但是我没有运行您的代码-顺便说一句,我认为您不能在 fetch 中设置 cookie 标头(或引用者)(尽管在本机反应中可能有所不同)-有什么方法可以准确地看到请求发送的内容 - 您可以进行某种调试
-
我用这个请求调用的服务不是我的。使用节点它可以工作。我只收到错误 500 并做出原生反应
-
显然该请求缺少某些内容,但除非您可以准确调试请求标头和正文的外观,否则这将很难
标签: javascript node.js react-native request fetch