【问题标题】:sending mail from outside of a website or asp.net application从网站或 asp.net 应用程序外部发送邮件
【发布时间】:2013-06-20 07:10:21
【问题描述】:

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

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

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

所以不是同一网站(site2)中的代码,而是从site1发送的

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

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 代码的请求吗?

【问题讨论】:

    标签: c# jquery asp.net email webforms


    【解决方案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);
        }
    });
    

    【讨论】:

    • 谢谢。我正在访问这两个链接,你能发布一个实现那里解释的代码吗(我对所写的内容有误解,我想这应该是简单的示例代码)?像 site1 jasonp vs 接受 site2 jsonp 说:site1 正在将其('#TBX_UserName').val() 发布到 site2
    • 感谢您提供的非常有帮助的信息,尽管这将是一个部分解决方案,因为我需要随时通过 site2 监听 site1 以检查是否正在发布数据,CORS 是否提供我们有更好的选择吗?我需要了解更多信息来检查它的具体实现和限制
    • @ReginaJerusalemsky 你可以在这里获得更多信息stackoverflow.com/a/6879276/340760 有一个使用 Twitter jsonp url 的例子......服务器应该返回 method( normal_json_response )。然后你只需用远程 url 注入一个脚本元素,当它加载时它将执行一个传递 json 参数的方法
    【解决方案2】:

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

    解决它的一种方法是 JsonP,但据我了解,它主要用于检索数据。

    您可能正在寻找的是Cross Origin Resource Sharing 或简称​​CORS。要实现这一点,您的 site2 需要设置一个 Access-Control-Allow-Origin 标头,并且用户需要使用支持 CORS 的浏览器(并非所有人都这样做,请参阅维基百科页面了解信息)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-04
      • 2012-01-03
      • 2011-03-27
      • 1970-01-01
      • 2011-12-22
      • 2023-03-30
      相关资源
      最近更新 更多