【问题标题】:Extract data from current URL and use it in ajax call as a paramenter从当前 URL 中提取数据并在 ajax 调用中作为参数使用
【发布时间】:2015-07-26 01:48:57
【问题描述】:

我正在开发一个网站,其中只有 1 个 html 页面,我首先获取 url 并从 url 获取 id 并使用 ajax 调用将其发送到 api。成功后,我会显示来自 url 的给定 id 的数据。我的代码是 as-

 <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>

    <script type="text/javascript">
        $(document).ready(function () {
            $('#main').hide();

            var url = window.location.href;
            var formno = url.substr(url.lastIndexOf('/') + 1);

            if (formno != 'Login.html') {              
                var apiUrl = 'http://localhost:801/api/api/Patient/Get';    
                $.ajax({
                    url: apiUrl,
                    crossDomain: true,
                    contentType: "application/json",
                    type: 'GET',
                    data: { formNo: formno },
                    success: function (result) {                           
                        $('#main').show();
                        alert("Success" + result)
                    },
                    error: function (result) {
                        alert("error :: " + JSON.stringify(result))
                    }
                });    
            }    
        });      
    </script>

当我将 url 用作 abc.in#1 时,它会显示成功警报,但我想以 abc.in/1 格式提供 url,当时它给出了

HTTP Error 404.0 - Not Found
The resource you are looking for has been removed, had its name changed, or is temporarily unavailable.

为什么找不到页面?有什么解决办法吗? 我想将纯 url 提供为 abc.in/1 其中 1 是 id 并且是动态的。 有什么解决办法吗?

【问题讨论】:

  • 如果您以/1 结束网址,那么您的网络服务器将寻找一个名为1 的子文件夹。您使用哈希的第一个实现是完全正常的,坦率地说是一种更简单的方法。这意味着您始终停留在同一个页面上,而您的方法意味着从一个页面跳转到另一个页面并处理不存在的页面。
  • abc.in/1 正在请求名为“1”的页面,该页面不存在。您可能希望使用 abc.html?id=1 之类的查询字符串,然后捕获参数。看到这个帖子:How can I get query string values in JavaScript?

标签: javascript jquery html ajax url


【解决方案1】:

您的浏览器可能正在尝试访问位置 abc.in/1 上的文档,该文档不存在。为此,您将需要一些服务器端逻辑,例如php 路由器将始终为您的文档提供服务,其他参数将由它处理。 abc.in#1 锚是不同类型的url参数,目的是在客户端由文档或javascript处理。

【讨论】:

  • 这将涉及页面加载,并且提问者表示他们希望使用 AJAX 将所有页面加载到一个页面中。
猜你喜欢
  • 1970-01-01
  • 2011-05-26
  • 2021-01-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-24
相关资源
最近更新 更多