【发布时间】:2020-11-21 18:51:24
【问题描述】:
Bellow 是我为登录 uni Web 应用程序而编写的代码的一部分。当我在 Postman 中使用以下参数发布帖子时,它允许我登录并将我重定向到个人资料页面,但是当我从我的应用程序发布帖子时没有任何反应。我用Charles查看request,发现request的内容是空的。我在定期通过网络登录时在浏览器(网络监视器和源代码)中发现了这个参数。
这个方法取自 Postman,所以我相信它应该像在 Postman 中一样在应用程序中工作。
const loginHandler = () => {
console.log("-----------------!!!-------------");
var myHeaders = new Headers();
myHeaders.append("Content-Type", "application/x-www-form-urlencoded");
var urlencoded = new URLSearchParams();
urlencoded.append("__EVENTTARGET", " ");
urlencoded.append("__EVENTARGUMENT", " ");
urlencoded.append(
"__VIEWSTATE",
"stg"
);
urlencoded.append("__VIEWSTATEGENERATOR", " xxx");
urlencoded.append(
"__EVENTVALIDATION",
" /something"
);
urlencoded.append("txtLogin", " username");
urlencoded.append("txtPassword", " pass");
urlencoded.append("btnLogin", " Login");
var requestOptions = {
method: "POST",
headers: myHeaders,
body: urlencoded,
redirect: "follow",
};
fetch(
"http://example/login.aspx",
requestOptions
)
.then((response) => response.text())
.then((result) => console.log(result))
.catch((error) => console.log("error", error));
};
有没有可能是body没有正确编码?
【问题讨论】:
-
您可能不想在没有 HTTPS 的情况下发送用户名和密码...此外,CORS 限制可能会阻止您发布到另一个来源。我不相信 Postman 有这个限制。
-
@PatrickRoberts 的问题在于
URLSearchParams()和标题,我不得不将其更改为FormData()并出于某种原因删除标题。
标签: javascript reactjs react-native fetch