首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用jQuery的JSON Ajax

使用jQuery的JSON Ajax
EN

Stack Overflow用户
提问于 2011-07-27 02:52:11
回答 2查看 261关注 0票数 0

我来自Prototype.js,在那里我处理所有ajax调用,如下所示:

代码语言:javascript
运行
复制
function ajax_request (page, func) {
    new Ajax.Request (page, { method : 'post', parameters : { JSON : func } } );
}

function test_func (data) {
    alert(data);
}

//example
ajax_request('/ajax.php', 'test_func');

和PHP:

代码语言:javascript
运行
复制
$data_array = array()
$data_array['test'] = 'test data';    

header("{$_SERVER['SERVER_PROTOCOL']} 200 OK", True, 200);
header('Content-type: application/javascript');
echo $_POST['JSON'] . '(' . json_encode($data_array) . '); //';

我正尝试在jQuery中实现类似的功能,但它似乎不是以同样的方式工作。我在jQuery中使用了以下代码,它发出了请求,但是test_func没有被调用。

代码语言:javascript
运行
复制
function ajax_request (page, func) {
    $.ajax({
        url: page,
        cache: false,
        type: 'POST',
        data: 'JSON=' + func
    });
}

我很可能从一开始就一直在用最好的方法来做这件事,所以如果有更好的方法,答案就不需要重复Prototype.js所使用的方法。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-07-27 02:56:25

根据我对您所问问题的最佳解释,我会说Prototype.js中的parameters选项与jQuery中的data参数是相同的。尽管jQuery允许您使用URL格式的查询字符串作为data,但我建议您传递一个对象以使其正确序列化:

代码语言:javascript
运行
复制
function ajax_request (page, func) {
    $.ajax({
        url: page,
        cache: false,
        type: 'POST',
        data: {
            JSON: func
        }
    });
}
票数 1
EN

Stack Overflow用户

发布于 2011-07-27 02:56:04

您可以将json对象作为数据参数传递给jquery ajax。为了调用test_func,您必须向ajax方法提供成功处理程序。

代码语言:javascript
运行
复制
function ajax_request (page, func) {
    $.ajax({
        url: page,
        cache: false,
        type: 'POST',
        data: { JSON : func },
        success: test_func
    });
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6835011

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档