如何从当前 URL 中获取 ID 并在 AJAX 中创建新的 URL

15 浏览
0 Comments

如何从当前 URL 中获取 ID 并在 AJAX 中创建新的 URL

我看过很多jQuery示例,其中参数的大小和名称是未知的。\n我的URL只会有一个字符串:\n

http://example.com?sent=yes

\n我只想检测:\n

    \n

  1. sent是否存在?
  2. \n

  3. 它是否等于\"yes\"?
  4. \n

0
0 Comments

问题的原因是用户需要从当前的URL中获取id并在ajax请求中使用。解决方法是使用jQuery编写一个函数来提取URL中的参数,并将其存储为JavaScript变量,以便在脚本中使用。

代码片段中的函数`$.urlParam`通过使用正则表达式来匹配URL中的参数,并返回相应的值。如果参数不存在,则返回null。为了处理特殊字符,函数使用了`decodeURI`来解码参数的值。

示例代码展示了如何使用`$.urlParam`函数来获取URL中的参数值。用户可以通过传递参数名作为函数的参数来获取相应的参数值。

文章中还提到了一个问题,即为什么函数中需要添加`|| 0`的部分。这是为了提供一个默认值,即使结果为null,也能返回一个值。虽然这是多余的,但是对于防止出错是一个合适的安全措施。

最后,文章中还提到了一些额外的讨论,包括使用jQuery是否值得以及是否需要同时使用`decodeURI`和`decodeURIComponent`等。同时还提到了一个问题,即如何修改正则表达式以匹配包含特殊字符的参数值。

总之,通过使用上述代码片段中的函数,用户可以方便地从当前URL中获取参数值,并在ajax请求中使用。这种方法使用了jQuery来简化操作,并提供了对特殊字符的处理。如果用户不想使用jQuery,也可以根据需求编写相应的JavaScript代码来实现相同的功能。

0
0 Comments

从上述内容中可以整理出以下问题的出现原因和解决方法:

问题:如何从当前URL中获取ID并在Ajax中创建新的URL?

原因:在Ajax请求中,有时需要从当前URL获取特定参数的值,并将其用于创建新的URL。这可能是因为需要根据特定参数的值进行条件判断或进行其他操作。

解决方法:可以使用以下步骤来获取ID并创建新的URL:

1. 获取当前URL中的查询参数:

let searchParams = new URLSearchParams(window.location.search);

2. 检查是否存在特定参数(例如,检查是否存在名为"sent"的参数):

searchParams.has('sent') // true

3. 获取特定参数的值:

let param = searchParams.get('sent');

4. 根据参数的值进行操作(例如,进行条件判断)。

如果需要处理多个相同参数的情况(例如,"?id=1&id=2"),可以使用以下代码获取参数的所有值的列表:

let param = searchParams.getAll('id');

需要注意的是,`URLSearchParams`可能不支持所有浏览器,因此可以使用polyfill进行兼容处理。可以在现代浏览器中使用以下代码进行特性检测:

if ('URLSearchParams' in window) {
    // Browser supports URLSearchParams
}

对于旧版本的IE浏览器,可以考虑使用polyfill来实现类似的功能。可以使用以下polyfill库:

- [github.com/jerrybendy/url-search-params-polyfill](https://github.com/jerrybendy/url-search-params-polyfill)

- [github.com/WebReflection/url-search-params](https://github.com/WebReflection/url-search-params)

以上解决方法是针对现代浏览器的,如果需要支持旧版本的IE浏览器,可以使用polyfill来实现相同的功能。这是一种现代问题的现代解决方案。

0
0 Comments

问题的原因是需要从当前URL中获取id,并且在ajax中创建新的URL。解决方法是使用一个JavaScript函数来解析URL参数。

首先,我们需要定义一个名为`getUrlParameter`的函数,它接受一个参数`sParam`,表示要获取的参数的名称。函数的实现如下:

var getUrlParameter = function getUrlParameter(sParam) {
    var sPageURL = window.location.search.substring(1),
        sURLVariables = sPageURL.split('&'),
        sParameterName,
        i;
    for (i = 0; i < sURLVariables.length; i++) {
        sParameterName = sURLVariables[i].split('=');
        if (sParameterName[0] === sParam) {
            return sParameterName[1] === undefined ? true : decodeURIComponent(sParameterName[1]);
        }
    }
    return false;
};

接下来,我们可以使用这个函数来获取当前URL的参数。例如,假设当前URL是`http://dummy.com/?technology=jquery&blog=jquerybyexample`,我们可以这样使用函数:

var tech = getUrlParameter('technology');
var blog = getUrlParameter('blog');

这样,`tech`变量将包含`jquery`,`blog`变量将包含`jquerybyexample`。

然而,在复制代码时,可能会遇到一个问题,即代码末尾有一个零宽空格(\u200b),导致脚本出现了一个不可见的语法错误。

如果要将参数值中的`+`转换为空格,可以使用正则表达式替换。例如,可以将`decodeURIComponent(sParameterName[1]).replace(/\+/g, ' ')`替换为`decodeURIComponent(sParameterName[1]).replace(/\+/g, ' ')`。

还需要注意的是,分号`;`是一个合法的分隔符,但函数中没有考虑到这一点。可以在函数的最后添加`return false;`或`return null;`来处理空搜索。

另外,如果要处理类似`?param1&param2`的没有值的参数,可以修改返回语句为`return sParameterName[1] === undefined ? true : sParameterName[1];`。

为了处理特殊字符,如空格和双引号,可以添加`decodeURIComponent(sPageURL)`来正确显示。

需要注意的是,`location.search`不能处理基于哈希路由的URL(#)。

如果要处理参数名或值中包含编码的`&`或`=`,则应该在参数值上进行解码,而不是在整个URL上进行解码。

以上是关于如何从当前URL获取id并在ajax中创建新URL的问题的原因和解决方法的整理。这段代码使用了JavaScript函数来解析URL参数,并给出了一些改进的建议。另外还提到了一个使用URI对象的解决方案。总体来说,这是一个实用的解决方案,可以帮助我们在开发中处理URL参数。

0