在使用 google latitude Api 的Ajax 请求调用用户的位置服务的时候,发现不能直接通过JS的Ajax来访问google latitude APi Json 数据, 查了一些资料和在好友的Blue_Sky的帮助下,解决了这一问题

解决方法,采用php进行代理转发调用

将JS的Ajax请求Url改为getAjaxGoogleLatitudeJson.php,代码

<?php
$url = ‘http://www.google.com/latitude/apps/badge/api?user=8438764727605747788&type=json’; //目标地址
function Post($url, $post = null) 

    $context = array(); 
 
    if (is_array($post)) 
    { 
        ksort($post); 
 
        $context[‘http’] = array 
        ( 
            ‘method’ => ‘POST’, 
            ‘content’ => http_build_query($post, ”, ‘&’),
        ); 
    } 
 
    return file_get_contents($url, false, stream_context_create($context)); 

 
$data = array 

    ‘name’ => ‘test’, 
    ’email’ => ‘test@gmail.com’, 
    ‘submit’ => ‘submit’, 
); 
 
echo Post($url, $data); 
?> 

 

通过这种方式,可以解决掉google 服务的Ajax的跨域访问问题, C#的版本可以自己根据这种格式改写

在这里感谢Blue_SKy..