来自其他站点的表单发布(跨域和跨Web服务器)

时间:2014-03-03 14:00:13

标签: php asp.net iis html-form-post form-post

我想从其他网站启用表单发布。假设我的网站中有一个表单,我想为其他网站启用该表单。

我有asp.net网页www.xyx.com \ formpost.aspx 使用字段EMail.and我想启用我的页面表单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 个答案:

答案 0 :(得分:0)

您需要在接收域(www.xyx.com

上设置CORS策略
header("Access-Control-Allow-Origin: *");

允许来自任何域的请求。

有关CORS的更多内容,请参阅:http://fritsvancampen.wordpress.com/2013/02/03/cross-site-origin-requests-aka-cross-origin-resource-sharing/

答案 1 :(得分:0)

两件事:

  1. 您需要使用完整的网址,例如'http://www.xyx.com/formpost.aspx/SaveCustomerEmail',否则浏览器会在您的服务器上查找名为www.xyz.com的资源。
  2. 你将遇到Same Origin PolicyjQyery's .ajax() function包含JSONP数据类型以解决此问题。当然,服务器需要允许跨域请求。