通过ajax将表单提交到另一个域

时间:2013-02-06 20:39:25

标签: jquery cors

我需要通过ajax(而不是json)向另一个域提交表单,但不断收到错误

XMLHttpRequest cannot load http://some.other.domain/. Origin http://localhost:8081 is not allowed by Access-Control-Allow-Origin.

有没有办法“修复”这个?

$.ajax({
    type: "POST",
    dataType: "text/html",
    data: $("#surveyForm").serialize(),
    crossDomain: true,
    url: "http://some.other.domain",
    processData: false,
    error: function (jqXHR, textStatus, errorThrown) {
    },
    success: function (response) {
    }
});

2 个答案:

答案 0 :(得分:1)

您最好的选择可能是设置proxy server。您不能使用JSON-P,因为您正在进行表单POST,并且您无法使用CORS,因为您无法控制远程域上的标头。

答案 1 :(得分:0)

我认为将数据发送到跨域你必须使用数据类型作为JSONP。你无法发布整个表格。我的下面代码对我来说正常工作(希望这会对你有帮助)

  $.ajax({ url: "MYURL",
    data: {
           paxMessage: JSON.stringify(paxMessage)
          },

    contentType: "application/json; charset=utf-8",

    dataType: "jsonp",

    success: function(data) {
              alert("Data Submitted successfully");
           },

    error: function(XMLHttpRequest, textStatus, errorThrown) {
           alert(textStatus);
           }
       });