简谈wordpress中的ajax请求,为什么会一直返回“0”
来源:互联网 发布:电磁仿真软件 feko 编辑:程序博客网 时间:2024/06/07 01:31
最近我发布了一款数据导入wordpress的插件,有兴趣的可以看这里:http://levi.cg.am/archives/3759;优化这款插件的时候遇到一个问题,使用ajax向wordpress发起请求,返回回来的始终是0!
至于这个问题,我放后面谈,先简单说下wordpress的ajax请求。
发起请求
wordpress中要发起ajax请求不难,分别需要如下:
PHP记录一个ajax钩子,以便后续操作:
<?phpfunction press_data(){ // do it... exit;} wp_register_script('request_data', plugins_url('request_data.js', __FILE__), array('jquery'));wp_enqueue_script('request_data'); add_action('wp_ajax_press_data', 'press_data');
从上面可以得出以下结论:
- wordpress是通过add_action记录一个ajax请求的钩子
- 钩子的名称前缀必须是“wp_ajax_”
- 钩子回调方法中必须通过“exit”或“die”来结束输出(后面会继续说明)
- 通过“wp_register_script”注册一个js,用于发起请求
jQuery.ajax({ type: 'POST', url: ajaxurl, data: { action: 'press_data' }, success: function(res) { // get res }});
从上面可以得出以下结论:
- url请求地址为一个固定的变量:ajaxurl
- 请求的“data”数据中必须有一个“action”属性,属性值必须和之前ajax记录请求的钩子名称对应
这些并不难,如果说还要增加点花样的话,比如说php传个值让ajax请求时带上,那么可以通过函数:wp_localize_script,如下:
// 注册一个钩子wp_register_script('request_data', plugins_url('request_data.js', __FILE__), array('jquery')); // 传递一个值wp_localize_script('request_data', 'request_data', array( 'url' => 'http://levi.cg.am')); // 调用这个jswp_enqueue_script('request_data');
而之前的js也仅需要这么修改即可:
jQuery.ajax({ type: 'POST', url: ajaxurl, data: { action: 'press_data', form: request_data.url }, success: function(res) { // get res }});
以上这些都不难,就提到这里,有不明白欢迎留言提问。
0 0
- 简谈wordpress中的ajax请求,为什么会一直返回“0”
- 简单谈一下wordpress中的ajax请求,为什么会一直返回“0”
- ajax请求一直出于请求状态,不返回的原因
- ajax为什么会返回一段html代码
- JQuery ajax请求一直返回Error(parsererror)
- JQuery ajax请求一直返回Error(parsererror)
- JQuery ajax请求一直返回Error(parsererror)
- JQuery ajax请求一直返回Error(parsererror)
- JQuery ajax请求一直返回Error(parsererror)
- wordpress 处理 ajax 请求
- 为什么发送ajax请求页面也会刷新呢?
- springmvc中 ajax请求错误,返回406,并一直进入error的回调方法,以及返回参数为Object
- fwrite为什么会导致内存一直增加。。。
- Java为什么会一直这么火
- ajax请求错误返回status=0
- ajax json 请求返回
- Ajax请求成功后,获取success中的返回的问题
- 为什么findViewById会返回null
- 基于自然图像先验的贝叶斯超分重建
- 利用SOLR搭建企业搜索平台
- 基数排序及C语言实现
- 第14周项目4-电子词典
- Android的XML的运用
- 简谈wordpress中的ajax请求,为什么会一直返回“0”
- 搭建solr3.6搜索服务器
- HDU—— 5123 who is the best?
- linux内核编译与简易驱动
- C语言中传值问题
- dede 0day 利用小技巧
- layout_weight
- POJ3181 Dollar Dayz 【母函数】+【高精度】
- Python的感悟笔记