2

为什么示例 1 中的 url 可以使用$.get,而示例 2 中的 URL 不能使用?有没有办法使示例二起作用?

示例一

$.get("http://localhost/magic/pages/tcgqueryoutput.php",
    function(data, statusTxt){
       $('#tcg_query_output').html(data);
    });

示例二

$.get("tcgqueryoutput.php",
    function(data, statusTxt){
       $('#tcg_query_output').html(data);
    });
4

2 回答 2

2

示例二基于当前的基本 url。因此,工作完全取决于您的 Web 应用程序的 url 路由/目录结构。

编辑:

在这种情况下,我想它正在尝试默认使用以下路由(假设该路由是从您的根目录定位的):

http://localhost/tcgqueryoutput.php

因此,您需要在相对 url 中指定更多内容才能正确解析。

于 2012-12-27T00:53:25.640 回答
0

在第一个示例中,您使用显式路径名。最佳实践应该是在生产中使用根目录中的显式路径名或完全限定路径。在我看来,您的第二种方法不起作用的原因是因为它从错误的位置推断路径名。它将采用当前语言环境,然后附加您拥有的 url。有几种可能性可以改变这一点。通常发生的情况是您将让服务器通过路径。

var serverPath = /*get value from server*/;

但是,您也可以选择显式输入此值,

var serverPath = "http://mydomain.com/";

这将允许您将其用作基础:

$.get(serverPath + "magic/pages/tcgqueryoutput.php",
function(data, statusTxt){
   $('#tcg_query_output').html(data);
});

如果您从服务器传入了 serverPath,那么您将在 localhost 和生产环境中看到这项工作。如果您手动执行此操作,则需要将值从 localhost 更改为 mydomain.com。

于 2012-12-27T01:12:33.557 回答