ajax跨域访问问题

例子:

<html lang="zh" xml:lang="zh" xmlns="http://www.w3.org/1999/xhtml">

<head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
    <meta charset="utf-8">
    <title>Tools</title>
<head>
<script type="text/javascript" src="./jquery-1.6.4.min.js"></script>
<script type="text/javascript">
function short(){
    var url_long=$("#url_long").val();
    var source=$("#source").val();
    var request = "http://api.t.sina.com.cn/short_url/shorten.json?url_long="+url_long+"&source="+source+"&callback=?";
    //&callback=? 必须加上,虽然可以返回数据但success:function 不会调用。jquery api 文档上有说明。
    $.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);
        }
    });
    return false;
}
</script>
</head>
<body >
  <div>
  欢迎使用地址转写工具,请输入链接<br><br>
<form>
物品链接:<input type="string" name="url_long" id="url_long" /><br>
APIkey     <input type="string" name="source" value="1681459862" id="source" /><br><br>
<input type="button" name="submit" value="提交" onclick="short()" />
</form>
</div>
<div id="shortUrl">
</div>
</body>

注意两点:
1. datatype 必须为jsonp
2.callback=? 必须加上,开始没加上success:function 一直没有响应(返回了数据)。
3.charset="utf-8" 为utf-8 ,文件的保存格式也应该是encoding utf-8 。
如下图所示:

刚开始format 选成了Encode in ANSI  打开网页时出现乱码。
程序运行结果为:


如果采用form 表单提交,不需考虑跨域问题。
代码如下:

<html lang="zh" xml:lang="zh" xmlns="http://www.w3.org/1999/xhtml"><head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
    <meta charset="utf-8">
 
    <title>Tools</title>
 
</head>
<body >
  <div>
 欢迎使用地址转写工具,请输入链接<br><br>
<form action="http://api.t.sina.com.cn/short_url/shorten.json" method="get">
物品链接:<input type="string" name="url_long" /><br>
 
&nbsp;&nbsp;&nbsp;&nbsp; APIkey     <input type="string" name="source" value="1681459862" /><br><br>
<input type="submit" name="submit" value="提交" />
</form>
</div>
</body>

 

感谢分享:http://blog.csdn.net/clam_clam/article/details/7035971

---------------------------------------<<<<<<<<<<<<<>>>>>>>>>>>-------------------------------

 
posted @ 2015-09-29 17:18  江湖丶丿新进程  阅读(118)  评论(0)    收藏  举报