ajax跨域访问
一.js Ajax跨域:
1. 通过添加<script>标签请求跨域的数据
2. 通过回调方法获取符合js语法的数据
代码示例:
- <script type="text/javascript">
- //添加<script>标签的方法
- function addScriptTag(src){
- var script = document.createElement('script');
- script.setAttribute("type","text/javascript");
- script.src = src;
- document.body.appendChild(script);
- }
- window.onload = function(){
- //搜索apple,将自定义的回调函数名result传入callback参数中
- addScriptTag("http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=apple&callback=result");
- }
- //自定义的回调函数result
- function result(data) {
- //我们就简单的获取apple搜索结果的第一条记录中url数据
- alert(data.responseData.results[0].unescapedUrl);
- }
- </script>
二.jquery框架 Ajax跨域:
1.指定datatype为jsonp,否则无法跨域
2.在回调方法success获取响应数据
- $.ajax({
- dataType: "jsonp",//跨域访问 dataType 必须是jsonp 类型。
- url: request,
- type:"GET",
- jsonp:"callbackparam",
- jsonpCallback:"success",
- success: function(response) {
- $("#shortUrl").html("短地址为:"+response[0].url_short);
- },
- error: function(XMLHttpRequest, textStatus, errorThrown) {
- alert("status"+XMLHttpRequest.status);
- alert("readyState"+XMLHttpRequest.readyState);
- alert("textstatus"+textStatus);
- alert(errorThrown);
- }
- });