2017-10-24 15 views
0

AJAXを使用して電子メールを送信しています。受信者に電子メールが送信されます。しかし私が理解していないのは、AJAXのsuccessコールバックが、電子メールが送信されたにもかかわらずトリガされない理由です。代わりに、errorコールバックがトリガーされます。AJAX POST経由で正常に送信されたが、成功コールバックではなくエラーコールバックが返される

AJAXのurlパラメータで同じサーバーを使用しているため、明らかにCORSの問題ではありません。また、Google Dev Toolsは問題を報告しておらず、200 OKと表示しています。

JSコード:

$(document).ready(function(){ 
    $(".js-validate-2").validate({ 
     ignore: ":hidden", 
     rules: { 
      //something 
     }, 
     messages: { 
      //something 
     }, 
     submitHandler: function(form) { 
      var recipient = "[email protected]" 
      var specifiedProduct = "PRODUCT: " + $('#specifiedProduct').val(); 
      var msg = $('#msg').val(); 
      var phone = "TEL: " + $('#phone').val() + ". "; 

      var params = { 
       "email": recipient, 
       "subject": specifiedProduct, 
       "body": msg + phone, 
      }; 

      var sendingToSupport = $.ajax({ 
       url: 'http://myServer/u/support/message', 
       data: JSON.stringify(params), 
       type: 'POST', 
       dataType: 'json', 
       contentType: 'application/json', 
       success: function(data) { 
        console.log("Huge success"); 
        console.log(params); 
        console.log(data); 
        alert("Successfully sent!"); 
       }, 
       error: function(data) { 
        console.log("Huge failure"); 
        console.log(params); 
        console.log(data); 
        alert("We apologize for an error!"); 
        $(".support-form").find("input[type=text], textarea").val(""); 
       } 
      }); 
     } 
    }) 
}) 
+1

返されるデータは有効なjsonですか? 'dataType: 'json''はあなたがそれを期待していると言います。jQueryはそれを構文解析しようとします。それが有効でないか提供されていればエラーとなり、代わりにエラーコールバックを実行します。 – Taplar

+1

応答HTTPコードが成功しなかった場合、 'error'ハンドラがトリガされます。外側 'status> = 200 && status <300 ||ステータス=== 304'。また、レスポンスの形式を逆シリアル化できない場合にも発生します。あなたのケースでは、応答が有効なJSONでない場合に発生します。 –

+0

@Taplarあなたはありがとう、ありがとう。 –

答えて

0

ので、問題は次のコードによって引き起こされた:AJAX呼び出しによって返されたデータはJSON形式になりますと言う

dataType: 'json', 

。したがって、jQueryはそれらのデータを解析しようとします。

私の場合、このコードを削除するとヘルプが表示され、AJAX呼び出しが正常に返され、適切な応答が返されました。

関連する問題