写js时总是会遇到跨域请求的问题,现在了解了两种方法,记录之:
1)使用$.ajax,但是返回数据类型要设置为jsonp,示例:
$.ajax({        type: 'get',        contenttype: application/json; charset=utf-8,              url: http://localhost:8080/aqi/getcitylist.php,        datatype: 'jsonp',        headers: {            accept: application/json,            access-control-allow-origin: *        },        crossdomain: true,        async: false,        jsonp: callback,//传递给请求处理程序或页面的,用以获得jsonp回调函数名的参数名(默认为:callback)        jsonpcallback:success_jsonpcallback,//自定义的jsonp回调函数名称,默认为jquery自动生成的随机函数名        success:function(json){          getcitylistsuccess(json);        },        error: function (data, textstatus, errorthrown) {            console.log(error + ' ' + json.stringify(data) + textstatus + errorthrown);        }    });
php端的代码为:query($sql);    	$i=0;    	while ($row = $result->fetcharray(sqlite3_assoc)) {    		$resultarray[$i]=$row;	    	$i++;    	}	echo $callback.'('.json_encode($resultarray).')';?>
注意:1、ajax中要指定jsonp参数,然后后端要把回调函数名称写入到返回值中。我参考的博文是:http://www.cnblogs.com/xcxc/p/3729660.html
2)用$.getjson,这个函数就支持跨域调用。
$.getjson(http://localhost:8080/aqi/getcitylist.php,function(json){      getcitylistsuccess(json);     });
但是后端代码(php)要加入:header(access-control-allow-origin:*);
不然会报错:no 'access-control-allow-origin' header is present on the requested resource. origin 'null' is therefore not allowed access. 
我参考的博文是:http://blog.163.com/lvshutao@126/blog/static/164637467201442253942499/?latestblog
                    以上就介绍了$.ajax和$.getjson解决跨域请求,包括了方面的内容,希望对php教程有兴趣的朋友有所帮助。
   
 
   