阿贾克斯/ JQuery的/ JSON窗体
问题描述:
我有一个形式,我需要发布的信息到外部网站,但由于某些原因,我得到一个错误:阿贾克斯/ 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>
可能有人请帮助我我的数据发布到外部网站:)
答
由于跨域限制,无法使用AJAX将POST张贴到不同的域。 jsonp
的工作方式是在DOM内部插入一个<script>
标记,以便执行GET请求。
答
浏览器都称为同源策略的安全概念由此AJAX请求只能访问页面源的来源(从一些小的注意事项和解决方法,但长短)的域名。
最好的办法是发布到本地页面作为代理,它会做“真正的“HTTP POST到外部网站。
答
无需为表单中的每个输入使用变量。
您可以使用$(“form”)。serialize()来发布所有输入字段。
var str = $("form").serialize();
也许不要紧,但你可能希望从你的代码示例删除URL。对其的常规GET请求会显示您的原始输入表单。我希望你没有把它连接到你的存储层。 – Alex 2009-07-30 06:36:36
是的,这是我试图在我的服务器上实现的形式,可能听起来很奇怪,但我需要的形式发送信息到该网址(原始形式是),并发送信息到我的数据库..亨氏所有问题 – SoulieBaby 2009-07-30 23:18:41