0

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

函数ajax_request(page,func){新Ajax。请求(页面,{method:'post',参数:{JSON:func}});}函数test_func(数据){警报(数据);}//示例ajax_request('/ajax.php','test_func');

以及PHP:

$data_array=数组()$data_array['test']='测试数据';header(“{$_SERVER['SERVER_PROTOCOL']}200 OK”,True,200);header('内容类型:application/javascript');echo$_POST[“JSON”]。'('.json_encode($data_array).');//';

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

函数ajax_request(page,func){$.ajax(美元)({url:页面,缓存:false,类型:'POST',数据:'JSON='+func});}

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

1

2个答案2

重置为默认值
1

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

函数ajax_request(第页,函数){$.ajax(美元)({url:页面,缓存:false,类型:'POST',数据:{JSON:函数}});}
1

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

函数ajax_request(page,func){$.ajax(美元)({url:页面,缓存:false,类型:'POST',数据:{JSON:func},成功:test_func});}
5
  • +1表示相同的答案(您甚至添加了一些有价值的信息) 评论 2011年7月26日19:01
  • @詹姆斯-如果答案有助于解决你的问题,请不要忘记接受。 评论 2011年7月26日19:08
  • 事实证明,取得成功并不是这项工作的必要条件。而且,也没有必要“提醒”我接受答案,你觉得我是新来的吗?
    – 辛普森
    评论 2011年7月26日19:32
  • 我指定了成功处理程序,因为您在问题中提到它没有被调用。[我在jQuery中使用了以下命令,它会发出请求,但不会调用test_func。] 评论 2011年7月26日19:33
  • 我知道这是唯一的问题,再次提到您在问题中提到了一些东西,请阅读[我正在使用下面的jQuery,它会发出请求,但test_func不会被调用。] 评论 2011年7月26日19:37

你的答案

单击“发布您的答案”,表示您同意我们的服务条款并确认您已阅读我们的隐私政策.

不是你想要的答案吗?浏览标记的其他问题问你自己的问题.