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

最善のオプションは、プロキシサーバーを設定することです。フォームPOSTを実行しているため、JSON-Pを使用できません。また、リモートドメインのヘッダーを制御していないため、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 に答える