Форма сообщения с другого сайта (кросс-домен и кросс-серверы)
Я хочу включить публикацию формы с других сайтов. Предположим, у меня есть одна форма на моем сайте, и я хочу включить публикацию этой формы для других сайтов.
У меня есть веб-страница asp.net www.xyx.com\formpost.aspx с полем EMail.и я хочу включить мою страницу формы post.for для всех, кто публикует данные на моем сайте. лайк
1)www.test.com\emailpost.php Форма сообщения с этого сайта.
var str = JSON.stringify($('#myForm').serializeObject());
$.ajax({
type: 'POST',
contentType: 'application/json; charset=utf-16',
dataType: 'json',
url: "www.xyx.com/formpost.aspx/SaveCustomerEmail",
success: function (msg) {
alert('done');
},
error: function (msg) {
alert(JSON.stringify(msg)) }
});
2) www.test2.com \ emailpost.jsp Форма сообщения с этого сайта.
var str = JSON.stringify($('#myForm').serializeObject());
$.ajax({
type: 'POST',
contentType: 'application/json; charset=utf-16',
dataType: 'json',
url: "www.xyx.com/formpost.aspx/SaveCustomerEmail",
success: function (msg) {
alert('done');
},
error: function (msg) {
alert(JSON.stringify(msg)) }
});
2 ответа
Вам необходимо установить политику CORS на принимающем домене (www.xyx.com
)
header("Access-Control-Allow-Origin: *");
Разрешить запросы из любого домена.
Более подробный взгляд на CORS см.: http://fritsvancampen.wordpress.com/2013/02/03/cross-site-origin-requests-aka-cross-origin-resource-sharing/
Две вещи:
- Вы должны использовать полный URL-адрес, такой как
'http://www.xyx.com/formpost.aspx/SaveCustomerEmail'
в противном случае браузер будет искать ресурс под названиемwww.xyz.com
на вашем сервере. - Вы собираетесь столкнуться с той же политикой происхождения. jQyery - х
.ajax()
функция включает в себяJSONP
Тип данных, чтобы обойти это. Конечно, сервер должен разрешать междоменные запросы.