使用$.getJSON解决ajax跨域访问 JQuery 的跨域方法(服务器端为wordpress程序)

简介:

客户端:

复制代码
<input id="cat" name="cat" type="hidden" value="<? echo $category->slug; ?>"/>
<input id="limit" name="limit" type="hidden" value="0"/>
<input id="count" name="count" type="hidden" value="5"/>
<input id="over" name="over" type="hidden" value="0"/>
<input id="length" name="length" type="hidden" value="30"/>
<input id="basturl" name="basturl" type="hidden" value="<? bloginfo('url'); ?>/?<? echo $category->slug; ?>="/>
<div class="btn-more">点击加载5条资讯</div>
<script>
function get_post()
{
    $.getJSON(
                    "http://www.xxx.com/ajax-wap-post?callback=?",
                    { cat: $("#cat").val(), limit:$("#limit").val(), count:$("#count").val(), length:$("#length").val() },
                    function(data)
                    {
                        if(data.result == 0)
                        {
                            $(".btn-more").html("没有更多了……");
                            $("#over").val("1");
                        }else
                        {
                            var html = "";
                            for(var i = 0; i<data.posts.length;i++)
                            {
                                html = html + "<li><a href='" + $("#basturl").val() + data.posts[i].id+"'>"+data.posts[i].title+"</a><span>"+data.posts[i].date+"</span></li>";
                            }
                            $(".catlist ul").append(html);
                            $(".btn-more").html("点击加载5条资讯");
                            $("#limit").val(parseInt($("#limit").val()) + parseInt(data.result));
                        }
                    },
                      "json"
         );
}
get_post();
    $(".btn-more").click(function(){
        if($("#over").val() == "1"){return;}
        
        $(".btn-more").html("加载中……");
        
        get_post();
    });
</script>
复制代码

 

 

服务器端:

复制代码
<?php

global $wpdb;

if(!$_GET)
{ exit; }

$cat = htmlspecialchars(trim($_GET["cat"]));
$limit = htmlspecialchars(trim($_GET["limit"]));
$count = htmlspecialchars(trim($_GET["count"]));
$length = htmlspecialchars(trim($_GET["length"]));


    $args = array('numberposts' => $count, 'offset'=> $limit, 'category' => get_category_by_slug($cat)->term_id,'post_status' => 'publish');   
    $posts = get_posts($args);
    $ary = array('result'=>count($posts),'posts'=>array());
    
    foreach( $posts as $post ) {
        array_push($ary["posts"],array('id'=>$post->ID,'title'=> mb_strimwidth($post->post_title, 0, $length, '…','utf-8') ,'date'=> date('Y-m-d',strtotime($post->post_date))));
    }


echo $_GET['callback'].'('.json_encode($ary).')';
exit;
?>
复制代码



本文转自黄聪博客园博客,原文链接:http://www.cnblogs.com/huangcong/p/4072196.html,如需转载请自行联系原作者
相关文章
N..
|
8月前
|
XML JSON 前端开发
jQuery实现Ajax
jQuery实现Ajax
N..
83 1
|
8月前
|
XML 前端开发 JavaScript
jQuery中ajax如何使用
jQuery中ajax如何使用
108 0
|
2月前
|
XML 前端开发 JavaScript
PHP与Ajax在Web开发中的交互技术。PHP作为服务器端脚本语言,处理数据和业务逻辑
本文深入探讨了PHP与Ajax在Web开发中的交互技术。PHP作为服务器端脚本语言,处理数据和业务逻辑;Ajax则通过异步请求实现页面无刷新更新。文中详细介绍了两者的工作原理、数据传输格式选择、具体实现方法及实际应用案例,如实时数据更新、表单验证与提交、动态加载内容等。同时,针对跨域问题、数据安全与性能优化提出了建议。总结指出,PHP与Ajax的结合能显著提升Web应用的效率和用户体验。
70 3
|
3月前
|
JSON JavaScript 前端开发
《进阶篇第6章:vue中的ajax》包括回顾发送ajax请求方式、vue-cli脚手架配置代理服务器、vue-resource
《进阶篇第6章:vue中的ajax》包括回顾发送ajax请求方式、vue-cli脚手架配置代理服务器、vue-resource
77 22
|
7月前
|
前端开发 JavaScript
杨校老师课堂之基于Servlet整合JQuery中的Ajax进行表单提交[基于IDEA]
杨校老师课堂之基于Servlet整合JQuery中的Ajax进行表单提交[基于IDEA]
58 0
|
3月前
|
前端开发 JavaScript Java
第6章:Vue中的ajax(包含:回顾发送ajax请求方式、vue-cli脚手架配置代理服务器)
第6章:Vue中的ajax(包含:回顾发送ajax请求方式、vue-cli脚手架配置代理服务器)
114 4
|
3月前
|
前端开发 JavaScript 数据处理
JQuery 拦截请求 | Ajax 请求拦截
【10月更文挑战第4天】
169 1
|
4月前
|
JSON 前端开发 JavaScript
jQuery AJAX 方法
jQuery AJAX 方法
50 1
|
4月前
|
JSON JavaScript 前端开发
Jquery常用操作汇总,dom操作,ajax请求
本文汇总了jQuery的一些常用操作,包括DOM元素的选择、添加、移除,表单操作,以及如何使用jQuery发送Ajax请求,涵盖了GET、POST请求和文件上传等常见场景。
|
4月前
|
JSON 前端开发 JavaScript
jQuery AJAX 方法
jQuery AJAX 方法
32 1