2

AJAX からフォームを処理中に奇妙な問題が発生しました。

期待どおりに動作していますが、何らかの理由で成功ではなくエラーが発生します。

これはコードです:

$(".sendBtn").click(function(e) {

    campaigncode = "#####";
    senderemail = "test@email.com";
    subject = "Test";
    sendermessage = "Test";
    targetURL = "www.abc.com";

    email = $(".email").val();

    //Email Validation
    var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;  
    if( email ==""){//Empty Check
        alert('Please enter your email');
        e.preventDefault();
    } else {
        if(!emailReg.test( email )) {//Email validation
            alert('*Please enter valid email');
            e.preventDefault();
        } else {

    //Ajax Start
    $.ajax({
            url: "http://services.ninemsn.com.au/sendtofriend/sendtofriendService.aspx?showdefaultmessage=true",
            context: document.body,
            type: "POST",
            data: {campaigncode:campaigncode, recipientemail:email, senderemail:senderemail, subject:subject, sendermessage:sendermessage, targetURL:targetURL},
            dataType: "jsonp",
            success: function() {
                alert('Success');
            },
                        error: function() {
                                    alert('Error');
                              }

        });//Ajax End

        }
    }

});
4

3 に答える 3

2

あなたのエラーから、この質問その質問は似ているように見えます。「jQuery_172blah が呼び出されませんでした」というエラーは、jsonp コールバックを参照しています (他の場所での解析が失敗したため呼び出されませんでした)。私が提案したい...

  1. を設定してから、またはcrossDomain: trueも設定してみてください。dataType:textdataType:text json
  2. 辞書の代わりに文字列dataとして渡してみてください。
  3. と を設定jsonp:falseしてみてくださいjsonpCallbackこれらのドキュメントを参照してください。

例えば:

var jsonString = JSON.stringify({
    recipientemail: email
});
$.ajax({
    url: "http://services.ninemsn.com.au/sendtofriend/sendtofriendService.aspx?",
    crossDomain: true,
    dataType: 'text json',
    data: jsonString,
    ...
于 2012-07-20T03:01:53.330 に答える
0

JSONP では、応答を何らかのコールバック関数でラップする必要があります。

応答をコンソールに記録して、何が返されたかを確認してください

success: function(data) { console.log(data); }

また、$.parseJSON を使用して、応答をオブジェクトにラップしてみてください。

success: function(data) {
    var json = $.parseJSON(data);
}
于 2012-07-20T03:40:55.087 に答える
0

エラーはサーバーにあります。「response . AllowGet」で送信します

于 2014-01-07T15:34:21.677 に答える