Как перенаправить на URL при нажатии на ссылку? - PullRequest
0 голосов
/ 23 апреля 2019

Моя проблема начинается с попытки перенаправить URL-адрес при нажатии на ссылку, и я передаю полезную нагрузку запроса с URL-адресом в запросе POST, запрашиваю полезную нагрузку, содержащую имя пользователя и пароль, и в основном пытаюсь выполнить автоматическую аутентификацию по ссылке. Пожалуйста, посоветуйте, является ли этот подход правильным и как я могу этого достичь. спасибо!

Я уже пытался создать href с функцией create Element и передать URL с полезной нагрузкой в ​​fetch api.

export default class PortComponent extends Component {
constructor(props) {
        super(props);
        this.state = { 
                      columnDefs: [
                {headerName: "Details", field: "details", autoHeight: true,
                cellRenderer: (params) => {

                      var link;

                      link = document.createElement('a');
                      link.href = "#";
                      link.onclick=this.manageMailWeb();
                      link.innerText = "Manage Mail + Web";
                      link.target="_blank";
                      div.appendChild(link);
                   }
                   return div;
                };
        }



                      async manageMailWeb(){
                      let name,pass, url = "https://example.net/OS4/index.php";
                      this.state.items.map(e => {
                              name=e.serviceDetails.domainName;
                              pass=e.serviceDetails.domainPassword;
                      });
                     await redirectService(name,pass,url);
                  }
        static async redirectService(name,pass,url,serviceId){
        const user=name,
        url = "",
        appoverride = "Login",
        CustomLogin = "http://example.net/login/close.html",
        CustomError = "http://example.net/login/close.html",
        CustomShell = "http://example.net/login/close.html",
        CustomLanguage = 'en',
        login_x = "1",
        login_y="1";
        return await fetch(url, {
         mode: "no-cors",
         method: "POST" ,
         headers: {
           "Access-Control-Allow-Origin": "*",
           "Content-Type": "application/json"
         },
         body: JSON.stringify(user,pass,appoverride, 
   CustomLogin,CustomError,CustomShell,CustomLanguage,login_x,login_y),})
   }

1 Ответ

0 голосов
/ 23 апреля 2019

вы должны вместо этого вызвать функцию manageMailWeb без ключевого слова this, как это manageMailWeb

...