js跨域ajax的方法

最近想写一个在网页上自动做题的小工程,不知道如何把数据库和网页连接起来,最初想的方法是用websql把题库存到浏览器,然后做题时候用js边匹配边选择答案,但是题库有点大,当点了那个做题的网页后,websql的内容会消失,我很头疼,后来学了ajax,我就想用ajax在控制台里传出来问题,然后后台匹配答案并返回答案,发现了一个问题,ajax普通只能在一个域传输信息,跨域就不行了,后来看了好多方法,最后用jsonp的方法解决跨域问题,在这里写出jsonp的小demo:

 $.ajax({ 
        type: "get",
        url:"http://localhost/ajax.php", 
        data:{name:'data'},
        dataType: 'jsonp', 
        async: false,
        success: function(data){  
            //
        }
    }); 
    function callback(data) {  
        //在这里的data是返回来的json数据,用来接收
        alert(data.con);  
    } 

ajax.php

<?php
  $callback = $_GET["callback"];
  $recei = $_GET["name"];
  $a = array(
     'con'=> $recei,
);
$result = json_encode($a);
echo "callback($result)";
exit;

在这里运行方式是把php放在apache的目录下,用lamp或者wamp环境,上面的jquery程序可以在chrome控制台运行,注意要引入jquery的库。另外,jsonp要有回调函数,即callback函数,默认是这个,如果要定义别的,需”jsonpCallback :’func_name’”。这个demo返回的结果是’data’;

var jq = document.createElement('script');
jq.src = 'http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js';
document.getElementsByTagName('head')[0].appendChild(jq);
jQuery.noConflict();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值