私は古いサイトを更新して、しゃっくりをしています。私は、通常のフォームの提出/ありがとうページではなく、ajaxを使用する連絡フォームを書き直しています。フォームアクションはサードパーティのサイトに送信されます(私はデータを解析するPHPへのアクセス権がありません)。基本的なフォームで動作します。私がajaxを使用して送信すると、フォームは送信されますが、エラーはスローされませんが、サードパーティのコードでDBに格納されたデータは空白です。同じフォーム名、同じ値。ここに私のJSです:元submitionオンajaxでのクエリ文字列の代わりにフォームデータを使用
$("#contactForm input,#contactForm textarea").jqBootstrapValidation({
preventSubmit: true,
submitError: function($form, event, errors) {
// additional error messages or events
},
submitSuccess: function($form, event) {
event.preventDefault(); // prevent default submit behaviour
// get values from FORM
var fname = $("#fname").val();
var lname = $("#lname").val();
var email = $("#email").val();
var cphone = $("#cphone").val();
var comments = $("#comments").val();
var address = $("#address").val();
var city = $("#city").val();
var zip = $("#zip").val();
$.ajax({
url: "https://my.serviceautopilot.com/AddEstimate.aspx?id=*************&wid=****************",
type: "POST",
dataType: 'jsonp',
processData: false,
data: {
fname: fname,
lname: lname,
cphone: cphone,
email: email,
comments: comments,
address: address,
city: city,
zip: zip
},
...
、データがこのように見えた: 私はそのデータを元にフォームデータとして渡されるためと考えていますが、中にクエリ文字列の一部として、 2番目の例。私はこれを仮定して正しいですか?コードに別の問題はありますか?
私は動作しなかったフォームデータオブジェクトを使用しようとしましたが、依然としてクエリ文字列に表示され、まだ空白になりました。私は、データ型、コンテンツタイプ、processdata = falseを調整しようとしましたが、運はありません。以前はサーバー側のコードにアクセスできましたが、この種のデバッグや修正を簡単に行うことはできませんでしたが、この時点では少し失われています。皆さん、ありがとうございました。
コメントありがとうございます。私は本当に同じ起源の政策を回避するためにそれを使用していた。だから、別の方法があります。それは知って良いです – Speed