日期:2014-05-16  浏览次数:20696 次

jquery ajax跨域报错
代码如下:

  $.ajax({

        type : "get", //jquey是不支持post方式跨域的

        async:false,

        url : "http://api.taobao.com/apitools/ajax_props.do", //跨域请求的URL

        dataType : "jsonp",

        //传递给请求处理程序,用以获得jsonp回调函数名的参数名(默认为:callback)

        //jsonp: "jsoncallback",

        //自定义的jsonp回调函数名称,默认为jQuery自动生成的随机函数名

        jsonpCallback:"test",

        //成功获取跨域服务器上的json数据后,会动态执行这个callback函数

        success : function(json){

            alert(json);
        }

    });

错误如下:

Resource interpreted as Script but transferred with MIME type text/html: "http://api.taobao.com/apitools/ajax_props.do?callback=test&_=1392519201918". jquery.js:4
Uncaught SyntaxError: Unexpected token : ajax_props.do:2

求大神们指点……
------解决方案--------------------
例子
http://my.oschina.net/duwaiweb/blog/80576
------解决方案--------------------
你先要弄清楚 jsonp 是什么?如何工作的

jsonp 是通过 script 标记来与服务端交流的
既然是 script 标记,那么服务端返回的就应该是合法的 js 语句
但是 http://api.taobao.com/apitools/ajax_props.do?callback=test&_=1392519201918 返回的是一个 json 格式的串,而不是 js 语句,因此就不能通过 js 语法检查
也就无法继续工作了