通过javascript请求ASP.NET处理程序

时间:2012-08-03 19:57:25

标签: javascript asp.net ashx

所以我正在尝试使用javascript自学asp.net。我下载了一个网站模板并将其转换为asp网站。它有一个联系表单,其中javascript称为php函数来发送电子邮件。我无法使用php在我的托管网站上发送电子邮件。

该模板包含一个文件MailHandler.ashx,我应该可以使用它来发送带有asp的邮件。我已经完成了我的研究,我相信我的代码处于正常运行状态。我的问题是,javascript用于调用PHP文件,如何将其转换为调用此MailHandler文件?

这是调用我的php文件的相关代码:

$.ajax({
    type: "POST",
    url:_.mailHandlerURL,   //this value is the path to the php file
    data:{
        name:_.getValFromLabel($('.name',_.form)),
        email:_.getValFromLabel($('.email',_.form)),
        phone:_.getValFromLabel($('.phone',_.form)),
        fax:_.getValFromLabel($('.fax',_.form)),
        state:_.getValFromLabel($('.state',_.form)),
        message:_.getValFromLabel($('.message',_.form)),
        owner_email:_.ownerEmail,
        stripHTML:_.stripHTML
},

我知道这是调用php文件的post方法,那么如何调用post方法做我的Mailhandler文件?

这是我的处理程序文件:

public class Handler : IHttpHandler {
    public void ProcessRequest (HttpContext context) {

             //create mail client, create message, send email

    }
}

1 个答案:

答案 0 :(得分:1)

检查此帖子$.get, $.post, $.ajax, $(elm).load to .ashx page problem我相信您的问题是格式化 - 请参阅data:attribute。

您肯定需要将_.mailHandlerURL设置为ashx文件的URL。

我认为它看起来应该更像这样:

var dataParams = "name="+_.getValFromLabel($('.name',_.form));
    dataParams += ", email="+_.getValFromLabel($('.name',_.form));
        // etc for the rest 
$.ajax({
    type: "POST",
    url:_.mailHandlerURL,   //this value is the path to the php file
    data:dataParams
},

如果此代码完全像您需要在java脚本中的最后一个}之后添加一个右括号并添加一个分号而不是逗号:

$.ajax({
    type: "POST",
    url:_.mailHandlerURL,   //this value is the path to the php file
    data:dataParams
});