【问题标题】:Request ASP.NET handler through javascript通过 javascript 请求 ASP.NET 处理程序
【发布时间】:2012-08-03 19:57:24
【问题描述】:

所以我正在尝试自学 asp.net 和 javascript。我下载了一个网站模板并将其转换为一个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 方法,那么如何在 Mailhandler 文件中调用 post 方法?

这是我的处理程序文件:

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

             //create mail client, create message, send email

    }
}

【问题讨论】:

  • url of $.ajax 中写入处理程序页面的url。此_.mailHandlerURL 应替换为ashx 页面的url。
  • 这就是我所做的一切?所以该方法在我的处理程序文件中的工作方式完全相同?
  • 这将对您的 ashx 页面执行后 ajax 请求。在ProcessRequest 函数中,编写代码以发送电子邮件。
  • 好的,谢谢,这就是我一直在尝试的,但它不起作用。我想我在其他地方有问题

标签: javascript asp.net ashx


【解决方案1】:

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

你肯定需要将_.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
});

【讨论】:

  • 这也不起作用。我收到一个错误,但它显示“未定义错误”
  • 更新了我的答案 - 你需要一个右括号和一个分号 - 删除最后一个逗号。
  • 好吧,我实际上有更多的代码。不过,我终于得到了一个错误。请求过滤模块被配置为拒绝 URL 中包含 hiddenSegment 部分的路径。必须与我的文件夹的权限有关,或者可能与我的网络服务器的配置方式有关
  • 一个错误至少是一个起点 - 也许关闭这个问题并打开一个带有错误转储的新问题?
  • 是的..我想我现在可以弄清楚我至少有错误
猜你喜欢
  • 1970-01-01
  • 2020-06-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-25
  • 1970-01-01
相关资源
最近更新 更多