美文网首页
传参的时候遇到特殊符号的处理

传参的时候遇到特殊符号的处理

作者: 年轻人多学点 | 来源:发表于2021-07-16 11:30 被阅读0次

    传参的时候,
    如果拼接的url,
    URL 中+号表示空格 %2B
    空格 URL中的空格可以用+号或者编码 %20
    / 分隔目录和子目录 %2F
    ? 分隔实际的URL和参数 %3F
    % 指定特殊字符 %25
    表示书签 %23
    & URL 中指定的参数间的分隔符 %26
    = URL 中指定参数的值 %3D

    两个解决办法

    第一就是js方法里的encodeURIComponent()
    第二就是改掉拼接放在params里传值

    // 根据查询条件查询书
    export function getBookList(params?: TableListParams): Promise<RequestData<TableListItem>> {
      const bookname = params && params.bookname ? params.bookname : '';
      const ArrTemp=R.join('+',R.split('+', bookname))
      delete (params as any).filter;
      const created_at = params && params.created_at ? params.created_at.join('|') : '';
      const discount = (params && params.discount !== '0|0') ? params.discount : "";
      const filter = handleGetfilters({ ...R.dissoc('bookname', R.clone(params)), created_at, discount });
      console.log(filter)
      // ["?bookname:string","?author:string","?isbn:string","?status:int","?created_at:string","?offset:int","?limit:int"])
      return new Promise((resolve, reject) => {
        request(
          `/admin/book/query_book?${filter}&bookname=${encodeURIComponent(ArrTemp)}&offset=${params?.current}&limit=${params?.pageSize}`,
          {
            method: 'GET',
          },
        )
          .then((data) => {
            const responseData = {
              data: data.book_list,
              success: true,
              total: data.total,
            };
            resolve(responseData);
          })
          .catch((err) => {
            reject({
              success: false,
            });
          });
      });
    }
    
    export function getBookList(params?: TableListParams): Promise<RequestData<TableListItem>> {
      delete (params as any).filter;
      params!.created_at = params && params.created_at ? params.created_at.join('|') : '' as any;
      params!.discount = (params && params.discount !== '0|0') ? params.discount : "";
      return new Promise((resolve, reject) => {
        request
        .get(API.getBookList, {
          params: sortTableParams(params),
        })
          .then((data) => {
            const responseData = {
              data: data.book_list,
              success: true,
              total: data.total,
            };
            resolve(responseData);
          })
          .catch((err:any) => {
            reject(new Error(err));
          });
      });
    }
    

    相关文章

      网友评论

          本文标题:传参的时候遇到特殊符号的处理

          本文链接:https://www.haomeiwen.com/subject/chavpltx.html