помогите пожалуйста с fetch

Поддержка
  • Здравствуйте, помогите разобраться пожалуйста, заранее благодарю.

    Кубик Браузер\Яваскрипт

    Подскажите почему ругается на переменные [[LENGTH]] [[TAB_ID]] [[UI_DETAILS]]
    А если их убрать то ругаеться на начало body начиная с admin

    В чём моя ошибка? Посмотрите пожалуйста кто силён в этом.

  • @lesliwp Как минимум переменные не следуют в кавычках указывать

  • @UserTrue спасибо

  • Помогите пожалуйста составить body

  • @lesliwp said in помогите пожалуйста с fetch:

    Content-Length": "[[LENGTH]]",

    Не указывай вручную размер данных, это не нужно.

    @lesliwp said in помогите пожалуйста с fetch:

    Помогите пожалуйста составить body

    Дай больше входной информации, я тебе дам конкретный код который будет работать в конкретном месте с конкретными данными.

    PS.
    код можно оформлять как три backticks, помоги людям, что пытаются помочь тебе.

    console.log("buu")
    

    Screenshot 2023-11-09 at 12.47.31.png

  • @sergerdn благодарю за совет по поводу оформления кода, не знал.
    У меня есть скрипт, который авторизовывается через браузер, выдёргивает X-Lumin-Tab-Id и X-Ui-Details, потом я через HTTP клиент начинаю брут.
    Но с недавнего времени cloudflare начал жёстко душить, МБ они режим подключили какой.

    Вот так всё работало:

    Я узнал про метод через fetch, и хочу попробовать, изучаю так сказать.
    Нужно отправить запрос, и получить response.
    И сейчас столкнулся с тем что не могу нормально составить код.
    А конкретно что-то не правильно я заполняю в body.

    ce827f6c-7a57-454f-9c39-55670c25f5f2-image.png

    Код:

    const response = await fetch("https://", {
      "headers": {
        "accept": "application/json, text/plain, */*",
        "accept-language": "en-US,en;q=0.9",
        "content-type": "application/json",
        "cache-control": "no-cache",
        "pragma": "no-cache",
        "sec-ch-ua": "\"Not/A)Brand\";v=\"99\", \"Google Chrome\";v=\"118\", \"Chromium\";v=\"118\"",
        "sec-ch-ua-mobile": "?0",
        "sec-ch-ua-platform": "\"Windows\"",
        "sec-fetch-dest": "empty",
        "sec-fetch-mode": "cors",
        "sec-fetch-site": "same-origin",
        "sec-fetch-user": "?1",
        "X-Lumin-Tab-Id": [[TAB_ID]],
        "X-Ui-Details": [[UI_DETAILS]]
      },
      "referrer": "https://",
      "referrerPolicy": "strict-origin-when-cross-origin",
      "body": "{"admin":false,"username":"[[USERNAME]]","password":"[[PASSWORD]]","deviceId":"[[DEVICEID]]"}",
      "method": "POST",
      "mode": "cors"
    });
    
    if (response.ok) {
      const body = await response.text();
      console.log(body);
      [[BODY]] = body;
      [[BODY2]] = response.text;
      [[BODY3]] = response.status;
      [[BODY4]] = response.statusText;
    } else {
      console.error('Failed to fetch data:', response.status, response.statusText);
    }
    

    P.S. Да я знаю что стоит уделить время обходу CF, но сейчас интересен метод fetch, посмотреть как это будет работать вообще.

  • @lesliwp

    var body = JSON.stringify({
          "admin": false,
          "username": "buuu",
          "password": "baaa",
          "deviceId": "beeee",
        })
    
  • @sergerdn спасибо большое, вроде проходит запрос.
    Из того что у меня есть, я получаю только [[BODY]] = сама пост дата
    И получаю [[BODY3]] = статус ответа (то есть 403)
    [[BODY2]] = undefined
    [[BODY4]] = ""

    Как мне получить содержание ответа, можете подсказать?

    4a2f8348-53aa-4b81-bff2-699d8e3dd643-image.png

    var body = JSON.stringify({
          "admin": false,
          "username": [[USERNAME]],
          "password": [[PASSWORD]],
          "deviceId": [[DEVICEID]],
        });
    
    const response = await fetch("https://", {
      "headers": {
        "accept": "application/json, text/plain, */*",
        "accept-language": "en-US,en;q=0.9",
        "content-type": "application/json",
        "cache-control": "no-cache",
        "pragma": "no-cache",
        "sec-ch-ua": "\"Not/A)Brand\";v=\"99\", \"Google Chrome\";v=\"118\", \"Chromium\";v=\"118\"",
        "sec-ch-ua-mobile": "?0",
        "sec-ch-ua-platform": "\"Windows\"",
        "sec-fetch-dest": "empty",
        "sec-fetch-mode": "cors",
        "sec-fetch-site": "same-origin",
        "sec-fetch-user": "?1",
        "X-Lumin-Tab-Id": [[TAB_ID]],
        "X-Ui-Details": [[UI_DETAILS]]
      },
      "referrer": "https://",
      "referrerPolicy": "strict-origin-when-cross-origin",
      "body": body,
      "method": "POST",
      "mode": "cors"
    });
    
    if (response.ok) {
      const body = await response.text();
      console.log(body);
      [[BODY]] = body;
      [[BODY2]] = response.text;
      [[BODY3]] = response.status;
      [[BODY4]] = response.statusText;
      let text = await response.text();
      console.log(text);
    } else {
      console.error('Failed to fetch data:', response.status, response.statusText);
    }
    
  • @lesliwp said in помогите пожалуйста с fetch:

    Как мне получить содержание ответа, можете подсказать?

    Третий вопрос будет смогу ли я написать скрипт за тебя? Смогу, конечно.😃

    Надо смотреть конкретный ресурс. То есть садится и смотреть, а потом писать код.

  • @sergerdn извините за наглость

  • @sergerdn оказалось что в коде всё верно.
    И если вводить подходящий аккаунт возвращает статус 200, а в [[BODY]] записывает респонс ответ полностью.
    А вот при не подходящем аккаунте, возвращает статус 400, а в респонс ничего, причём во вкладке Network тоже пусто.
    Хотя если посылать через браузер как положено, респонс есть.
    При том что запрос абсолютно одинаковый выходит что в ручную, что через скрипт.

  • 0 Votes
    5 Posts
    583 Views
  • 0 Votes
    7 Posts
    714 Views
  • 0 Votes
    6 Posts
    735 Views
  • 0 Votes
    3 Posts
    504 Views
  • Баг с логом

    Поддержка
    0 Votes
    2 Posts
    985 Views