我的问题很简单,我想通过jquery在我的 dll 中调用一个函数。
我正在尝试以下
$(window).load(function(){
$.ajax({ type: "POST", url: "RemotePaymentdll/Class1/CheckPending", data: '{}', contentType: "application/json; charset=utf-8", dataType: "json", success: alert("Success"), error: alert("Error") })
});
我的dll中的函数如下
Public Shared Sub CheckPending() Dim aaa = "" End Sub
我只是希望能够从jquery访问CheckPending()
中的dll
。我该怎么办?
答案 0 :(得分:1)
通常,JS只能访问本地资源和URL资源。
我建议在服务器端创建一个Resuful API来调用CheckPending方法。 和JQuery使用这个API。
答案 1 :(得分:0)
您可以尝试这样的事情:
$(window).load(function () {
var ObjFromDll = new ActiveXObject("RemotePaymentdll.Class1"),
result = ObjFromDll.CheckPending();
});
这只适用于IE ...
如果您在实例化ActiveXObject
看看here
答案 2 :(得分:0)
我建议使用HttpHandler来完成服务器端的工作,你可以通过javascript调用它:
您可以使用某些代码创建一个.ashx文件:
<%@ WebHandler Language="VB" Class="MyTestHandler" %>
Imports System
Imports System.Web
Imports System.IO
Imports System.Data.SqlClient
Imports System.Data
Imports System.Xml
Public Class MyTestHandler : Implements IHttpHandler
Private ReadOnly Property Parameter1() As Integer
Get
If Not IsNothing(HttpContext.Current.Request.QueryString("Parameter1")) Then
Return CInt(HttpContext.Current.Request.QueryString("Parameter1"))
Else
Return -1
End If
End Get
End Property
Public Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest
context.Response.Clear()
context.Response.Buffer = True
context.Response.Expires = -1
context.Response.Write("YOUR OUTPUT HERE")
context.Response.Flush()
context.Response.End()
End Sub
Public ReadOnly Property IsReusable() As Boolean Implements IHttpHandler.IsReusable
Get
Return False
End Get
End Property
End Class