在我的ASP.net Web项目中,我在.js文件中编写了以下Javascript代码:
function getDeviceTypes() {
var deviceTypes;
$.ajax({
async: false,
type: "POST",
url: "Controls/ModelSelectorWebMethods.aspx/getDeviceTypes",
data: '{ }',
contentType: "application/json;",
dataType: "json",
success: function(response) {
deviceTypes = response.d;
},
error: function(xhr, status) {
debugger;
alert('Error getting device types.');
}
}); // end - $.ajax
return deviceTypes;
}
直到我尝试将此.js文件加载到子目录中的页面中,效果一直很好。
假设我的项目名称为widget
。
当我在主虚拟目录中使用此代码时,Javascript解释Controls/ModelSelectorWebMethods.aspx/getDeviceTypes
为意思https://mysite.com/widget/Controls/ModelSelectorWebMethods.aspx/getDeviceTypes
,一切都很好。但是,在子目录中的页面上,Javascript将其解释为意思https://mysite.com/widget/subdirectory/Controls/ModelSelectorWebMethods.aspx/getDeviceTypes
,因此它不起作用。
如何编写Javascript代码,以便可以从应用程序中任何目录的页面调用AJAX Web方法?
您有两种选择:
var config = {
base: <% /* however the hell you output stuff in ASPX */ %>,
someOtherPref: 4
};
然后在AJAX url前面加上前缀config.base
(并更改config.base
是否在开发/测试/部署服务器上的值。)
<base />
HTML标记为所有相对URL设置URL前缀。这会影响 所有 相对URL:图像,链接等。就个人而言,我会选择选项1。您很可能会在其他位置找到该配置对象。
显然,配置对象必须包含在您的评估服务器端代码的站点的一部分中。一个.js
没有自己的服务器配置文件将不会削减它。我总是在HTML中包含config对象<head>
;它是一个小的配置对象,其内容可以在每个页面上更改,因此最好将其粘贴在其中。
下面是我拥有的代码片段: class.block的每个div都有一个data-title属性(每个data-title属性的值不同)。我希望能够在我的匿名函数中访问这个data-title属性。
我使用的是mac、chrome 69、webpack 3.8.1、css loader 1.0.0、style loader 0.19.1 我在我的网页配置中设置了如下css sourcemap: 在chrome devTool元素检查器中,它看起来像这样: 问题是,是否可以将源映射缩短为相对于我的项目根路径? 所以不是 我希望它显示为 经过一些实验,看起来css源地图独立于webpack dev
问题内容: 我需要读里面。我尝试通过如下相对路径进行操作: 这给了我以下错误: 如何在Java中定义相对路径?我正在使用jdk 1.6并在Windows上工作。 问题答案: 试试这个 因此,新文件指向创建路径,通常是项目主文件夹。 [编辑] 正如@cmc所说, 两者都赋予相同的值。
问题内容: 我有一个网址: 和相对路径: 我想使用变量和 怎么做? 问题答案:
问题内容: 节点中是否有类似“ path.resolve”的API?还是有什么可以做的? 例如(nodejs代码): 应该得到: 问题答案: 解决(表示用户的家)是另一回事,通常是由外壳来解决。。 如果要通过Go代码执行此操作,则可以使用该函数获取有关当前用户的详细信息,包括其主文件夹(即)。但是,您仍然必须自己替换它。 原始答案如下。 您可以使用或。 例如: 输出: 您可以使用和从路径中“删除”
问题内容: 说,我有两条绝对路径。我需要检查其中一条路径所指的位置是否为另一条路径的后代。如果为true,则需要从祖先找出后代的相对路径。用Python实现此功能的好方法是什么?我可以受益于任何图书馆? 问题答案: os.path.commonprefix()和os.path.relpath()是您的朋友: 因此,您可以测试公共前缀是否是路径之一,即,其中一个路径是否是公共祖先: 然后,您可以找到