1

外部サイトに情報を投稿する必要があるフォームを持っていますが、何らかの理由でエラーが発生します:

エラー: [例外...「制限された URI へのアクセスが拒否されました」コード: "1012" nsresult: "0x805303f4 (NS_ERROR_DOM_BAD_URI)" 場所: "jquery.core.1-3-2.min.js 行: 19"] ソース ファイル: jquery.core.1-3-2.min.js 行: 19

フォームを実行する (または実行しようとする) ために使用しているコードは次のとおりです。

<script type="text/javascript" language="javascript">
$(function() {

  $(".FormButtons").click(function() {

    var name        = $("input#contactDataFirstName").val();
    var lname       = $("input#contactLastName").val();
    var gender      = $("input#contactDataGender").val();
    var dobd        = $("input#contactDataDateOfBirthday").val();
    var dobm        = $("input#contactDataDateOfBirthmonth").val();
    var doby        = $("input#contactDataDateOfBirthyear").val();
    var mobile      = $("input#contactDataMobilePhoneNumber").val();
    var street      = $("input#contactDataStreetAddress").val();
    var suburb      = $("input#contactDataSuburbTownCity").val();
    var postcode    = $("input#contactDataPostcode").val();
    var country     = $("input#contactDataCountry").val();
    var state       = $("input#contactDataCountrySubdivisionIDNew").val();
    var password    = $("input#contactDataPassword").val();
    var email       = $("input#contactDataEmail").val();
    var remail      = $("input#contactDataReceiveEmail").val();
    var rmail       = $("input#contactDataReceiveMail").val();
    var rsms        = $("input#contactDataReceiveSMS").val();

    var dataString = 'contactDataFirstName='+ name + '&contactLastName=' + lname + '&contactDataGender=' + gender + '&contactDataDateOfBirthday=' + dobd + '&contactDataDateOfBirthmonth=' + dobm + '&contactDataDateOfBirthyear=' + doby + '&contactDataMobilePhoneNumber=' + mobile + '&contactDataStreetAddress=' + street + '&contactDataSuburbTownCity=' + suburb + '&contactDataPostcode=' + postcode + '&contactDataCountry=' + country + '&contactDataCountrySubdivisionIDNew=' + state + '&contactDataPassword=' + password + '&contactDataEmail=' + email + '&contactDataReceiveEmail=' + remail + '&contactDataReceiveMail=' + rmail + '&contactDataReceiveSMS=' + rsms;

    $.ajax({
      type: "POST",
      url: "path_to_url",
      //dataType: "jsonp", 
      data: dataString,
      success: function() {
        $('#contact_form').html("<div id=\"message\"></div>");
        $('#message').html("<h2>Contact Form Submitted!</h2>")
        .append("<p>We will be in touch soon.</p>")
        .hide()
        /*.fadeIn(1500, function() {
          $('#message').append("<img id='checkmark' src='images/check.png' />");
        });*/
      }
     });
    return false;
    });
});
</script>

誰かが私のデータを外部のウェブサイトに投稿するのを手伝ってくれませんか:)

4

4 に答える 4

3

ブラウザーには、同一生成元ポリシーと呼ばれるセキュリティの概念があり、AJAX 要求は、ページ ソースの生成元のドメインにのみアクセスできます (いくつかの小さな注意事項と回避策がありますが、長短あります..)

あなたの最善の策は、プロキシとして機能するローカル ページに POST することです。これは、外部サイトに対して「実際の」HTTP POST を実行します。

于 2009-07-30T05:11:33.337 に答える
3

このサイトで解決策を確認できます。

于 2009-07-30T05:12:52.790 に答える
3

クロス ドメインの制限により、AJAX を使用して別のドメインに POST することはできません。動作する方法は、DOM 内にタグをjsonp挿入して、GET 要求を実行することです。<script>

于 2009-07-30T05:13:51.790 に答える
2

フォームのすべての入力に変数を使用する必要はありません。

$("form").serialize( ) を使用して、すべての入力フィールドを投稿できます。

var str = $("form").serialize();

こちらを参照してくださいjqueryフォームのシリアライズ

于 2009-07-30T05:19:18.283 に答える