0

私は AJAX フォームの送信を検討していますが、AJAX 呼び出しが原因に関する情報がほとんどまたはまったくないエラーを返すという問題に遭遇しました。

私の SubmitForm メソッドは次のとおりです。

function SubmitForm(FormId,Container) 
{  
    var FormElement = document.getElementById(FormId);
    var TargetUrl = document.URL + "resource/form/" + FormId + ".php";
    var SubmitUrl = TargetUrl + "?action=submit";
    var SuccessUrl = TargetUrl + "?action=success";
    var ErrorUrl = TargetUrl + "?action=failure";
    var DataString = "";

    for( var i = 0; i < FormElement.length; i++ )
    {
        if( i > 0 )
            DataString += "&"

        DataString += FormElement.elements[i].name + "=" + FormElement[i].value;
    } 

    $.ajax({  
      type: "POST",  
      url: SubmitUrl,  
      data: DataString,  
      success: function() { 
        RequestAjax(Container,SuccessUrl); 
      },
      error: function(object, textStatus, errorThrown){
      console.log(textStatus + "|" + errorThrown + "|" + object.status + "|" + object.responseText);
          RequestAjax(Container,ErrorUrl);
      }
    });
    return false; 
}

送信元:

<input name="submit" type="submit" id="submit" class="submit" value="Login" onClick="javascript: SubmitForm('loginForm','userData');" />

そして、私はこのような出力を得ています;

error||0| 

ヒットしようとしている URL が存在することはわかっており、別のインスタンスで基本的に同一のコードを使用してフォームを送信しましたが、上記のようなわかりにくい問題が発生しています。

アドバイスをいただければ幸いです。

4

3 に答える 3

1

私が最初に試みることは、あなたの値を UrlEncode することです:

var DataString = "";

for( var i = 0; i < FormElement.length; i++ )
{
    if( i > 0 )
        DataString += "&"

    DataString += FormElement.elements[i].name + "=" + encodeURI(FormElement[i].value);
} 
于 2013-07-02T19:02:58.323 に答える