2009-07-30 8 views
1

フォーム私は外部のサイトに情報を掲載する必要があるフォームを得たが、何らかの理由で、私はエラーを取得していました:ここに私のコードですのAjax/jQueryの/ JSONは

Error: [Exception... "Access to restricted URI denied" code: "1012" nsresult: "0x805303f4 (NS_ERROR_DOM_BAD_URI)" location: "jquery.core.1-3-2.min.js Line: 19"] Source File: jquery.core.1-3-2.min.js Line: 19

フォームを実行します(または、そうしようと)するために使用したM」:

<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> 

は、誰かが私には外部のウェブサイト:)

+0

を参照してください。通常のGETリクエストには、元の入力フォームが表示されます。これをあなたの記憶層に配線していないことを願っています。 – Alex

+0

yehは私のサーバー上で実装しようとしているフォームは、奇妙な音かもしれませんが、私はそのURL(元のフォームがどこに)に情報を送信し、また私のデータベースに情報を送信する必要があります..ヘンセすべて問題は – SoulieBaby

答えて

3

クロスドメインの制限により、AJAXを別のドメインにPOSTすることはできません。 jsonpの仕組みは、<script>タグをDOMの中に挿入するので、GETリクエストを実行します。

3

ブラウザはセキュリティの概念は同一生成元ポリシーと呼ばれているに自分のデータをポスト助けてもらえそれによってAJAXリクエストはアクセスのみできます

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

+0

残念だと申し訳ありませんが、データを転送するローカルページはどうすれば入手できますか? – SoulieBaby

2

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

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

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

たぶん、それは問題ではありませんが、あなたのコードの例からそのURLを削除することがあり、ここでjquery form Serialize