рдШреБрдЯрдиреЗ рдФрд░ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреЗ рдЕрднреНрдпрд╛рд╕ рдкрд░ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде URL рдЙрддреНрдкрдиреНрди рдХрд░реЗрдВ

рдПрдХ рдмрд╛рд░, рдореИрдВрдиреЗ рдПрдХ рдкрдбрд╝реЛрд╕реА рдЯреАрдо рдХреА рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдХреЛрдб рдХреЛ рджреЗрдЦрд╛, рдЬрд┐рд╕рдиреЗ рдПрдХ iframesrc рд╡рд┐рд╢реЗрд╖рддрд╛ рдореЗрдВ рдмрд╛рдж рдХреЗ рд╕рдореНрдорд┐рд▓рди рдХреЗ рд▓рд┐рдП URL рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЙрддреНрдкрдиреНрди рдХреА ред


рдпрд╣ рд▓реЗрдЦ рд╕рддрд╣реА, рд╕реНрдкрд╖реНрдЯ рдпрд╛ рдмрд╣реБрдд рд╕рд░рд▓ рд▓рдЧ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЪреВрдВрдХрд┐ рдпрд╣ рд╡рдиреНрдпрдЬреАрд╡реЛрдВ рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдЪреБрдк рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдмрд▓реНрдХрд┐ рд╕рд░реНрд╡реЛрддреНрддрдо рдкреНрд░рдерд╛рдУрдВ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред


рддреЛ рдпрд╣рд╛рдБ рдпрд╣ рд╣реИ, рдореВрд▓ рдХреЛрдб:


const createQueryString = (param1, param2, objectId, timestamp, name) => {
  const encodedTimestamp = encodeURIComponent(timestamp);
  const delimiter = '&';
  const queryString = `${param1}${delimiter}
        param2=${param2}${delimiter}
        objectId=${objectId}${delimiter}
        itemTimestamp=${encodedTimestamp}${delimiter}
        itemName=${name}`;
  return queryString.replace(/ /g, '%20');
};

рд╕рдВрджрд░реНрдн рдХреЗ рд▓рд┐рдП, param1рдФрд░ param2рдореВрд▓ рдХреЛрдб рдореЗрдВ рдмреЛрд▓рдиреЗ рд╡рд╛рд▓реЗ рдирд╛рдо рд╣реИрдВред рдФрд░ рдЙрдирдХреЗ рдореВрд▓реНрдп URL рд╡рд░реНрдгреЛрдВ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЕрдорд╛рдиреНрдп рд╡рд░реНрдгреЛрдВ рдХреЗ рд╕рд╛рде рдХрд┐рд╕реА рднреА рддрд╛рд░ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ


рдЗрд╕ рдХреЛрдб рдореЗрдВ рдХреНрдпрд╛ рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВ?


  • -, encodeURIComponent , . ( , );
  • -, , - template string `; .replace(), ;
  • -, - , .

?


:


const delimiter = '&'; //      
const createQueryString = (param1, param2, objectId, timestamp, name) => {
  const queryString = [
    `param1=${encodeURIComponent(param1)}`,
    `param2=${encodeURIComponent(param2)}`,
    `objectId=${encodeURIComponent(objectId)}`,
    `itemTimestamp=${encodeURIComponent(timestamp)}`,
    `itemName=${encodeURIComponent(name)}`
  ].join(delimeter);
  return queryString;
};

? . , encodeURIComponent. , . .


? ! :


const createQueryString = (param1, param2, objectId, timestamp, name) => {
  const queryParams = {
     param1,
     param2,
     objectId,
     itemTimestamp: timestamp,
     itemName: name
  };
  const encodeAndJoinPair = pair => pair.map(encodeURIComponent).join('=');
  return Object.entries(queryParams).map(encodeAndJoinPair).join('&');
};

. , тАФ .


, . , .



. , ? , queryParams. . , . , :


const encodeAndJoinPair = pair => pair
  .map(encodeURIComponent)
  .join('=');

const createQueryString = objectParams => Object
  .entries(objectParams)
  .map(encodeAndJoinPair)
  .join('&');
};

utils.js .


URLSearchParams


Web API. URLSearchParams .


:


const createQueryString = objectParams => new URLSearchParams(objectParams).toString();

Internet Explorer, , , https://www.npmjs.com/package/url-search-params-polyfill .



рдпрджрд┐ рдХреЛрдб рдХреНрд░рд┐рдпрд╛, рднреНрд░рд╛рдордХ рд▓рдЧрддрд╛ рд╣реИ, рддреЛ рд╕рдВрднрд╡рддрдГ рдЗрд╕реЗ рд╕реБрдзрд╛рд░рдиреЗ рдХреЗ рд╕рд░рд▓ рддрд░реАрдХреЗ рд╣реИрдВред
рдФрд░ рдпрд╣ рднреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдЬрд┐рд╕ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рд╡рд╣ рд╡реЗрдм рдПрдкреАрдЖрдИ рд╕реНрддрд░ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛред


All Articles