ajax 跨域访问报错。

小鹏
  • 134

http://::**:8079/dcc-api/api/alarmevent/getTree

上面是接口地址,

var url="http://**:**:**:8079/dcc-api/api/alarmevent/getTree";
    $.ajax({
        headers: {
            Accept: "*/*",
            contentType: "*/*"
        },
        type: 'GET',
        url: url,
        dataType:'jsonp',
        success: function (msg) {
            console.log(msg)
            console.log(msg.data[0].children.length)
            tree(msg.data);
        },
        error: function (error) {
            console.log(error);
        }
    });

jsonp格式请求报错黄色这个,
image.png
json报错跨域 该如何跨域访问这个接口
image.png

回复
阅读 892
2 个回答

JSONP 的那个 CORB 错误是你这个接口的响应标头里没带 Content-Type: application/javascript 或者 Content-Type: text/javascript,叫后端改一下,它现在返回的是 Content-Type: application/json,那哪儿能对。

AJAX 跨域就是基本的 CORS 问题了,那几个 Access-Control-*** 响应标头需要加,并且后端要能正确处理 OPTIONS 预检请求。

跨域需要后台进行根本性的解决,前台解决不了。只能借助nginx去进行代理,如果服务器做了某些限制,nginx都不行。jsonp同理,也需要后台支持jsonp,不然后台服务还有什么安全可言吗,遇到跨域,一股脑的jsonp,nginx就解决了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏