我能使用JQuery从web.config中读取数据吗?

3

我可以使用jQuery读取web.config中的数据吗?

8个回答

16

Jquery是在您的浏览器中运行的JavaScript,而Web.config文件则存储在您的服务器上。如果您想从Web.config中公开数据,我认为您应该创建某种WebService,以便可以从客户端JavaScript调用以获取所需数据。

如果您可以直接从Web.config文件中读取,那么这将是一个重大的安全风险,因为Web.config文件通常用于存储敏感信息,如连接字符串等。


1
感谢您的解释,我还发现这个链接与您的解决方案非常接近: http://www.dotnetcurry.com/ShowArticle.aspx?ID=131 - Amr Badawy
3
这个解决方案实际上把你的 SQL Server 连接字符串放到了响应里!从安全角度来看,这是糟糕的代码实践。 - James Westgate

2
使用无aspx / HTML5的最佳解决方案:
1. 在项目根目录中创建名为“Web.config.js”的文件(JavaScript文件)。
2. 在HTML文件中添加对该JS的引用。
<script src="Web.config.js" type="text/javascript"></script>

3. 将键和值添加到 "Web.config.js" 文件中:

var prmKEY = "myVal"

4. 从JQuery中作为全局参数访问prmKEY


1

你也可以将数据存储为cookie,放在OnPreRender(EventArgs e)Page_Load(object sender, EventArgs e)中(如果你使用的是Page_Load(),请将cookie存储在if (!IsPostBack){}中,这样就不会多次存储)。然后在客户端读取它,以便用于任何目的。我通常将此类数据存储为客户端上的会话存储,以便在程序运行时使用。

服务器端:

// **This works best if the property isn't a data structure, otherwise you will need to do**
// some data manipulation to get it to work right
Response.Cookies["FOO"].Value = MyApp.Properties.Settings.Default.FOO.ToString();

客户端:

sessionStorage.FOO = readCookie("FOO");

0
我找到了一种不需要创建任何 Web 服务的解决方案:
1- 创建一个空的 aspx 页面,在其加载时从 web.config 中读取数据,并使用 Response.Write(**) 将其写入页面中。
2- 使用 JQuery 从创建的页面中读取结果,如下所示:
$.get
(
   "JQueryPage.aspx",
    function(result) {
      // .. set variable to result and use it 
    }
};

0

不可以。


0
我会假设您可以在控制器中从webconfig读取值。将该值注入到视图中,然后使用jQuery检索该值。这是我处理的方式。我会将其放置在我的appsettings元素中。此处显示如何从您的webconfig获取。https://msdn.microsoft.com/en-us/library/610xe886.aspx,然后我会使用Viewbag将其注入到我的视图中。

0
  1. 在页面加载事件中,使用配置管理器将配置值存储在隐藏字段中。
  2. 使用JQuery从隐藏字段中检索。

0
你可以在HTML中创建一个带有变量的隐藏文本框,并将值从配置文件分配给它。为隐藏控件分配一个ID,然后使用jQuery获取其详细信息。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接