0

我有一个带有 html5/javascript/css3 的网站,我必须将联系表单值发送到位于 django 项目(带有活塞/休息)中的外部 Web 服务中的 Web 服务。我已将带有值的 Json 加载到 Jquery/Ajax 中,并发送到 Django 项目中的 Javascript 函数。这是表单网站中的 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 未定义”

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 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 回答
0

您似乎正在开发中,因此您可以查看控制台并查看 django 应用程序是否收到了请求,以及如何回答:

  • 您的 Django 应用程序(在控制台中)可能会回复一个401 Forbidden响应,这将表明您没有为此视图禁用 CSRF 保护,鉴于您的用例,您必须这样做。
  • 您的应用可能会回复一个500 Internal Server Error响应,这表明您的视图中存在编码错误。
  • 您的应用程序可能会回复一个200 OK响应,这将表明错误在 JS 中的某个位置。
  • 控制台中可能没有任何内容,这表明发送请求时出现问题。检查来自 JS 调试器的日志以查看错误是什么。
于 2012-10-25T20:33:15.150 回答