отправка почты извне веб-сайта или приложения asp.net

Можно ли публиковать данные с html-страницы с помощью JQuery на другой веб-сайт 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?


person Regina Jerusalemsky    schedule 23.06.2013    source источник


Ответы (2)


По умолчанию JavaScript не разрешен доступ к другим доменам, кроме того, из которого он произошел из соображений безопасности. Вы не хотите, чтобы сценарии JavaScripts на моем сайте получали доступ к веб-сайту вашего банка с помощью файла cookie для входа в банк, если вы случайно просматриваете мой сайт во время входа в банк.

Один из способов обойти это - JsonP, но, насколько я понял, это в основном для получения данных.

Вероятно, вы ищете совместное использование ресурсов разных источников. или короткое CORS. Чтобы реализовать это, вашему сайту site2 потребуется установить заголовок Access-Control-Allow-Origin, а пользователям потребуется использовать браузер, поддерживающий CORS (не все это делают, см. Страницу википедии для информации).

person Anders Abel    schedule 23.06.2013

Вы не можете делать межсайтовые запросы с javascript. Вам необходимо использовать jsonp

jQuery поддерживает jsonp, см. следующий пример

$.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);
    }
});
person BrunoLM    schedule 23.06.2013
comment
благодаря . Я посещал обе ссылки, не могли бы вы опубликовать код, реализующий то, что там объясняется (у меня проблемы с пониманием того, что написано, я полагаю, это должен быть простой пример кода)? например site1 jasonp против принятия site2 jsonp скажем: site1 отправляет свой ('#TBX_UserName').val() на site2 - person Regina Jerusalemsky; 24.06.2013
comment
спасибо за информацию, которую вы были очень полезны, хотя это было бы частичное решение, потому что мне нужно будет постоянно слушать с site2 до site1, чтобы проверить, публикуются ли данные, дает ли CORS нам лучший вариант? мне нужно узнать больше, чтобы проверить, какие именно его реализации и ограничения - person Regina Jerusalemsky; 24.06.2013
comment
@ReginaJerusalemsky, вы можете получить дополнительную информацию здесь stackoverflow.com/a/6879276/340760 Существует пример с использованием URL-адреса jsonp в Twitter. ... Сервер должен вернуть method( normal_json_response ). Затем вы просто вставляете элемент сценария с удаленным URL-адресом, когда он загружается, он выполнит метод, передающий параметр json - person BrunoLM; 24.06.2013