1

我需要通过 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) {
    }
});
4

2 回答 2

1

您最好的选择可能是设置代理服务器。您不能使用 JSON-P,因为您正在执行表单 POST,并且您不能使用 CORS,因为您不控制远程域上的标头。

于 2013-02-07T14:25:31.890 回答
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);
           }
       });
于 2013-02-07T08:56:51.707 回答