用.ASPX 文件作为服务器端代码,通过 AJAX 由 HTML/Javascript 客户端调用



在我的工作中,有几千名员工使用过一些工具。 它们目前存储在文档库中的 SharePoint 2010(即将升级到 2016)中。 从本质上讲,我们将 SP2010 用作 Web 服务器,因此我们不必为自己的 Web 服务器向业务部门收取巨额费用。

这些工具都基于HTML和JavaScript。 但是,我正在尝试自动收集用户当前手动输入的数据点。 为此,我发现最好的方法是查询LDAP,它始终是服务器端代码,因为无法通过浏览器查询LDAP。 下面,您将看到我拥有的 JavaScript 和我拥有的 ASPX 文件(减去 SharePoint 自动创建的标头)。 我正在向 ASPX 文件发送一个 AJAX 调用,其中包含从 LDAP 获取剩余数据所需的 URL 中的一些数据。 但是,我得到的似乎是浏览器存储的所有代码,而不是我想要的一个 JSON 变量。

首先是 JavaScript:

var ldapUserName;
var employee = {};
var ADSystem = new ActiveXObject("ADSystemInfo");
ldapUserName = ADSystem.UserName;
$.ajax({
type: "GET",
url: "http://my.url.where/i/am/storing/getEmp.aspx?username=" + ldapUserName,
success: function(data) {
employee = data;
alert(employee);
},
error: function() {
alert("Connection Failed");
}
});

接下来,ASPX 文件(减去自动添加的 SharePoint 标头)

<% 
Option Explicit
Response.LCID = 1043
%>
<!--#include file="jsonObject.class.aspx" -->
<%
Dim username 
username = Request.QueryString("username")
empDemo(username)
Public Function empDemo(username)
'Create the Array that will be passed
Set JSON = New JSONobject
'Employee specific information
Set objUser = GetObject("LDAP://" & username)
JSON.Add "empNum", objUser.sAMAccountName
JSON.Add "fName", objUser.givenName
JSON.Add "lName", objUser.sn
JSON.Add "fullName", objUser.displayName
JSON.Add "ext", objUser.telephoneNumber
JSON.Add "title", objUser.title
JSON.Write()
End Function
%>

请注意,我正在拉入一个文件,该文件可帮助 VBScript 处理 JSON 变量。 该文件可以在这里找到。

同样,返回的内容似乎是ASPX文件的所有源代码。 我需要的是只取回 JSON 变量。 有人有什么建议吗?

您的服务器不知道什么是"aspx"文件。它认为它是一个文本文件,所以它只是返回文件的文本。

我不确定您将如何解决此问题,因为我不熟悉Sharepoint。由于Sharepoint是一个文档管理系统,因此Sharepoint似乎正在做它所构建的目的。存储文档,然后允许人们下载它们。SharePoint 服务器上似乎没有用于"aspx"文件的解释器。

如果可能的话,此 URL 可能会帮助启用此功能:https://support.microsoft.com/en-us/help/828810/how-to-enable-an-asp.net-application-to-run-on-a-sharepoint-virtual-server

最新更新