从网站外部或asp.net应用程序发送邮件

时间:2013-06-23 19:08:12

标签: c# jquery asp.net email webforms

是否可以使用Jquery将数据从html页面发布到另一个asp.net网站?

www.site1.com/mail.html - >的 www.site2.com/mailServ.aspx

使用jquery ajax我可以使用此代码发布到[webmethod]

后面的代码

所以代替同一网站(site2)中的代码,它将从site1发送

这是我用于将表单数据发布到同一网站应用程序中的Web方法的代码

function jQuerySendMailCsCodeBehind(resluts) {

    var SentClientinfo = []
    SentClientinfo.push({ key: "SentClientinfo", value: resluts });
    var CurrpageURL = "default.aspx/"; <---
    var WebmethodName = "StartTest";
    var StageIdentifyer = "stage1";
    var Post_TargetUrl = CurrpageURL + WebmethodName;

    jQueryAajaxNoPostBack(Post_TargetUrl, SentClientinfo, StageIdentifyer);
}

我试图从应用程序之外发布

所以我刚用过

    var CurrpageURL = "http://www.site2.com/default.aspx/"; 

从其他网站(site1)html网站非asp.net,但这个想法在现实中没有用(:

所以有一个webForms应用程序/ asp.net网站的选项 会接受来自ajax / jquery的其他网站代码的请求吗?

2 个答案:

答案 0 :(得分:1)

您无法使用javascript制作跨网站请求。您需要使用jsonp

jQuery支持jsonp,请参阅following example

$.ajax({
    type: 'GET',
    url: 'http://githubbadge.appspot.com/badge/torvalds',
    dataType: 'jsonp',
    success: function(json) {
        var result = '<h3>' + json.user.login + '</h3>' +
                     '<p>Languages: ' + json.languages + '</p>' +
                     '<p>Followers: ' + json.user.followers + '</p>';
        $('#badge').append(result);
    }
});

答案 1 :(得分:1)

默认情况下,出于安全原因,不允许JavaScript访问除源自其之外的域。如果您在登录银行时正在查看我的网站,您不希望我网站上的JavaScripts访问您银行的网站,并使用您的银行登录cookie。

解决这个问题的一种方法是JsonP,但据我所知,它主要用于检索数据。

您可能正在寻找的是Cross Origin Resource Sharing或短 CORS 。要实现这一点,您的site2需要设置一个Access-Control-Allow-Origin标头,并且用户需要使用支持CORS的浏览器(不是全部都可以,请参阅维基百科页面了解相关信息)。