0

我正在尝试访问从外部 post 函数返回到 Play 的数据!在本地运行的项目。该帖子也在本地执行,但来自 xampp(不是 Play!)并且成功(在服务器端看到) - 执行 crud 并返回数据。我可以在 Opera 的 DragonFly 上看到返回的数据,在网络选项卡上,在响应中,但是我似乎无法访问它。jQuery 甚至没有进入function(data){...}.

我使用的两种方法是:

$(document).ready(function(){
    $('#createTask').click(function(){

        alert('In click function');
        var $title = prompt('Task title');
        var $url = 'http://localhost:9000/application/createtask'

        $.post($url,{title:$title}, function(data){
            alert('In return function');
            //alert(data.title);
            //alert(JSON.stringify(data));
        }, 'application/json'); 

        $.ajax({
            type: "POST",
            url: $url,
            data: {title:$title},
            dataType: "application/json",
            success: function(data){
                alert("Success: " + JSON.stringify(data));
            },
            done: function(data){
                alert("Done: " + JSON.stringify(data));
            },
            error: function (data){
                alert("Error: " + JSON.stringify(data));
            }
        });
    });
})

如何访问返回的数据?我究竟做错了什么?

谢谢!

4

1 回答 1

2
  1. 从改为简单。dataType_$.ajax({...})"application/json""json"
  2. "json"使用as时,jQuery 会自动将 JSON 数据转换为 JavaScript 对象dataTypeconsole.log(data)而不是alert("Success: " + JSON.stringify(data)).
  3. 您的某些参数不正确。
  4. 为什么$在你的变量名中?

因此,请尝试将您的代码更改为以下代码。

$(document).ready(function () {
    $('#createTask').click(function () {
        console.log('In the "click" handler for "#createTask".');

        var task_title  = prompt('Task title', '');
        console.log('Your task will be given the title: "' + task_title + '".');

        var ajax_url    = 'http://localhost:9000/application/createtask';

        $.ajax({
            'complete': function (jqXHR, status) {
                console.log('Complete!');
                console.log(status);
            },
            'data': {
                'title': task_title
            },
            'dataType': 'json',
            'error': function (jqXHR, status, error) {
                console.log('Error!');
                console.log(status);
                console.log(error);
            },
            'success': function (data, status, jqXHR) {
                console.log('Success!');
                console.log(status);
                console.log(data);
            },
            'type': 'POST',
            'url': ajax_url
        });
    });
});
于 2012-09-10T18:54:55.950 回答