我能否使用JavaScript调用/请求一个.NET处理程序(ashx)?

3

使用JavaScript代码调用处理程序是否可能?例如,我在此位置部署了一个处理程序http://mysitename.com/getMyData.ashx。我能否调用此处理程序或仅使用JavaScript请求它?这是否可能?请建议。

4个回答

6

您可以使用ajax或jquery ajaxcall来实现此功能。

相同的ajax函数:

function showHint(elementid,url,str) {

    if (window.XMLHttpRequest) {
        xmlhttp=new XMLHttpRequest();
    } else {
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }

    xmlhttp.onreadystatechange=function() {
        if (xmlhttp.readyState==4 && xmlhttp.status==200) {
            document.getElementById(elementid).innerHTML=xmlhttp.responseText;
        }
    }
    xmlhttp.open("GET",url+str,true);
    xmlhttp.send();
}

如果您不想传递任何查询字符串数据,可以传递空字符串。 - Pranay Rana
实际上,我传递了一个空字符串,但我认为这个语句没有被执行:document.getElementById(elementid).innerHTML=xmlhttp.responseText;我甚至在这里放置了一个警报语句,但它没有起作用。可能是什么问题? - ria
请检查元素ID,即检查是否存在具有此ID的元素。 - Pranay Rana
元素的ID存在,并且处理程序也使用语句context.Response.Write("<html><body><table style='width:100%;'> ")写入数据,这是因为我在context.response.write中使用了HTML吗? - ria
对此我一无所知,但在我的应用程序中,我只是从处理程序返回URL,即将URL写入处理程序。 - Pranay Rana
显示剩余4条评论

2
您可以使用XMLHttpRequest(AJAX,不一定要使用XML)在后台加载URL。我强烈建议您通过像jQuery这样的JavaScript框架来完成,因为它可以避免直接访问丑陋的低级接口。请注意保留HTML标记,但不要添加解释。

1
$(document).ready(function () {
        saveCookies('true');
    });

function saveCookies(save) {
        $.ajax({
            url: "/Handlers/getMyData.ashx.ashx",
            data: { 'savecookies': save },
           async: false,
            success: function (data, status, xhr) {   
            }
        });
    };

1
请先详细说明您想要做什么。
您可以使用AJAX调用并请求WebService的URL。

谢谢...实际上我以前从来没有做过,所以我想要一个示例代码片段 :) - ria

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