7 个回答

用 jQuery 的 jsonp

$.ajax({
    type: 'GET',
    dataType: 'jsonp',
    url: '...',
    success: function() {
        // ...
    }
});

补个例子

jsonp 只能用在支持 GET 且服务端支持 callback 参数的场景中,如果只支持 POST 的话参考楼上。。

js调用别人域名下的api肯定是属于跨域请求,你可以用Ajax请求自己的服务器,让自己的服务器代理自己去请求别人的api接口,比如我做的一个web版的知乎日报就是这样干的 zhihudays.sinaapp.com

首先要明确一点:

jsonp跨域请求需要server和browser同时配合才能完成

服务器要帮你套上回调函数,你才能收到数据。这就是为什么你请求一个纯json文件无现象。

关于跨域问题,我的建议是放到后台来做。在后台加上一个代理(nginx)。 然后自己的前端访问nginx代理暴露出来的网址。说白了,其实就是通过代理来避开跨域问题。希望对你有用。

谢谢,各位,我确实也参考了 jquery的技术文档,用此方法后不管是跨域还是不跨域均没有任何提示反应,奇怪的很,就这几行代码你说,贴上我实际的代码:

$.ajax({

        crossDomain: 'true',
        type:'GET',
        url: 'http://web1.com/test/example/ajax/ajax-1/json1.json',
        dataType: 'jsonp',
        success: function(){
            alert("已加载");
        }
});
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题