我有一个问题,任何有一点ajax知识的人都应该能够轻松回答,我只是没有找到我在网上寻找的解释,所以我想我会在这里问。我正在一个现有的网站上工作,我之前没有任何ajax知识。
以这种方式进行JQuery ajax调用:
$.ajax({
url:"/example/url/?x=1&y=2",
type:"GET",
dataType:'JSON',
success: function (data) {
//some code
}
});
我的困惑在于url属性。在我的情况下,“/ example / url /”不引用网站中的任何目录或页面。我知道x和y是参数,网站正常运行,但是当我点击执行此脚本的按钮时,我并不完全清楚。我知道它是从这个站点的SQL Server数据库中获取数据我只是不知道如何制定查询。如果有人可以准确地说明当这个ajax调用运行时会发生什么,我将非常感激。
答案 0 :(得分:2)
首先,您必须了解路径在计算机上完全是任意的。它们只是一种便利,仅此而已。一个扩展的名称,人类更容易记住。基本上,“there is no spoon”。
我们喜欢把东西放在“文件柜”中,因为这就是“真实”世界中存在的东西。如果您在顶部抽屉中放置了某些东西,则它不能同时位于底部抽屉中。所以我们倾向于围绕“文件夹”的概念组织事物。路径是此概念的扩展 - 文件夹中的文件夹。
对于服务器,路径只不过是一个字节数组。大多数服务器使用此路径作为扩展名称,它遵循操作系统文件系统的规则,但它不必。实际上,Microsoft的MVC平台根本不使用路径作为文件的引用。相反,路径用于对命令进行分组,更像是带有菜单和子菜单的菜单系统。
//MyDomain.com/File/New
//MyDomain.com/File/Open
//MyDomain.com/File/Save
//MyDomain.com/File/SaveAs
//MyDomain.com/Edit/Copy
//MyDomain.com/Edit/Cut
//MyDomain.com/Edit/Paste
所以当你问“这个URL指向什么?”答案完全取决于服务器以及服务器如何选择解释该URL(最终,这是由编程服务器的人做出的决定)。有些服务器在一定程度上服从它们的文件系统,有些服务器使用URL作为组织命令的方式,而其他服务器则使用两者的混合。我确信还有其他使用URL的方法,但我认为你明白了。
使用服务器端代码,通常可以覆盖服务器的默认行为。例如,在ASP.NET中,可以拦截请求并手动处理它们。因此,虽然ASP.NET的默认行为是获取特定文件夹中的文件,但实际上可以实现类似于MVC的行为。在MVC中,可以反过来 - 让服务器根据相对URL路径提供文件。因此,了解服务器的默认行为仍然无法完全回答问题,因为网站开发人员可能因某种原因改变了这种行为。
答案 1 :(得分:1)
答案是:这完全取决于你的申请。
如果应用程序是ASP.NET框架,比如MVC ......,则URL遵循模式{Controller} / {Action},因此您需要在ExampleController中查找名为URL的ActionResult / JsonResult方法。如果您的后端运行在PHP上,请按照您提问的评论中的说明进行操作。
ajax调用总是在寻找页面,方法或者在你看到的路径之后的东西。实际路径是什么以及在哪里查看可能会有所不同。
答案 2 :(得分:1)
扩展@ mike-hometchko上面所说的,这实际上取决于。没有涉及很多技术细节:
IIS使用default.htm,default.aspx等作为默认页面名称。
Apache默认为index.htm,index.php等。
在nodejs中,您设置了自己的网址(称为路由),并且在请求网址时,您可以控制作为响应发回的内容。
如果您正在使用REST API,那么它就不是一个真正的页面(简单来说)是一个Web应用程序,它监视不同的URL以便发送数据并做出相应的响应。