2009-07-30 3 views
1

양식,하지만 어떤 이유로 나는 오류 받고 있어요 : 코드를 여기에아약스/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

을 사용자들은 I 양식을 (또는 그렇게하려고)을 사용하고 있습니다 :

<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

볼 수 있지만, 당신은 당신의 코드 예제에서 해당 URL을 제거 할 수 있습니다. 그것에 대한 정기적 인 GET 요청은 귀하의 원래 입국 양식을 보여줍니다. 이 파일을 이미 저장 영역 레이어에 연결하지 않았 으면합니다. – Alex

+0

예, 그게 내 서버에서 구현하려고하는 양식, 이상하게 들릴지도 모르지만 그 URL (원래 양식이 어디에) 정보를 보내고 또한 내 데이터베이스에 정보를 보내려면 양식이 필요합니다 .. hense all 문제는 – SoulieBaby

답변

3

도메인 간 제한으로 인해 AJAX를 다른 도메인으로 POST하는 것은 불가능합니다. jsonp은 DOM 내부에 <script> 태그를 삽입하므로 GET 요청을 수행합니다.

3

브라우저는 보안 개념은 동일 출처 정책이라고 한 내 데이터를 게시 도와주세요 수 이에 따라 AJAX 요청은 페이지 소스가 생성 된 도메인 (일부 사소한주의 사항 및 해결 방법이 있지만 길고 짧음)

가장 좋은 방법은 프록시 역할을하는 로컬 페이지에 POST하는 것입니다. 실제 "HTTP POST를 외부 사이트에 보냅니다.

+0

미안하지만, 데이터를 전달할 로컬 페이지를 어떻게 얻을 수 있습니까? – SoulieBaby

2

양식의 모든 입력에 변수를 사용할 필요가 없습니다.

$ ("form"). serialize()를 사용하여 모든 입력 필드를 게시 할 수 있습니다.

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

는 어쩌면 그것은 중요하지 않습니다 여기 jquery form Serialize