0

html5/javascript/css3 を使用した Web サイトがあり、連絡先フォームの値を、django プロジェクト (ピストン/レスト付き) にある外部 Web サービスの Web サービスに送信する必要があります。Json を値とともに Jquery/Ajax にロードし、Javascript 関数に Django プロジェクトに送信しました。これはフォーム Web サイトの Js です。

var json = "{\"nome\": "+nome
    +", \"empresa\": "+empresa
    +", \"email\": "+email
    +", \"telefone\": "+telefone
    +", \"assunto\": "+assunto
    +", \"mensagem\": "+mensagem
    +"}";
try{
    ws("http://127.0.0.1:8000/ws/wsname/", json,"POST","","", "alert(ws_returned_info)", "");
}catch(erros){
    alert(erros.message);
}

Django プロジェクトの ws 関数は、self プロジェクトから呼び出されたときに正常に動作しますが、キャッチでは「responseText is undefined」という警告が表示されます

function ws( p_url, p_json, p_type, p_auth, p_before, p_success, p_finally ){
    var resposta = true;
    preLoader.show();

    dict = { url: p_url,
             beforeSend: function(request){
                            request.setRequestHeader('Authorization', "*" );
                            request.setRequestHeader('Access-Control-Allow-Origin', '*' );
                            eval(p_before);
                         },
             cache: false,
             type: p_type,
             data: p_json,
             async: false,
             contentType: 'application/json; charset=utf-8',
             processData: false,
             dataType: 'json',
             success: function(json, textStatus){
                        eval(p_success);
                      },
             error: function(XMLHttpRequest, textStatus, errorThrown){
                        erros(XMLHttpRequest.responseText);
                        resposta = false;
                      }
            };

    $.ajax(dict);

    preLoader.fadeOut("fast");
    eval(p_finally);

    return resposta;
};
4

2 に答える 2

0

あなたは開発中であるように見えるので、コンソールを見て、リクエストがdjangoアプリによって受信されたかどうか、およびそれがどのように応答されるかを確認できます:

  • Django アプリ (コンソール内など) は、401 Forbiddenこのビューの CSRF 保護を無効にしなかったことを示す応答を返す場合があります。
  • アプリから応答が500 Internal Server Error返される場合があります。これは、ビューにコーディング エラーがあることを示しています。
  • アプリは200 OK、エラーが JS のどこかにあることを示す応答を返す場合があります。
  • リクエストの送信に問題があることを示すコンソールには何も表示されない可能性があります。JS デバッガーのログを調べて、エラーの内容を確認してください。
于 2012-10-25T20:33:15.150 に答える
0

に django の URL がありhttp://127.0.0.1:8000/ws/wsname/、別のアプリから JSON を送信したいとします。

何をしhttp://127.0.0.1:8000/ws/wsname/ますか?私の推測では、あなたの ajax 呼び出しに正しい応答が返されていません。

于 2012-10-25T20:28:52.743 に答える