layui 跨域请求

提问 已结
24 2093
First
First 2018-6-13
悬赏:20飞吻
版本:layui 浏览器:googl
如何实现layui的跨域请求,
我没有后台代码,只有前端代码。
后台代码是写好一个个接口发布到阿里云上,在前端直接调用接口就行。所以不可能去修改后台代码。像:jsonp还有修改服务器返回数据类型(这是不可以的,因为不是只有我在用,如果修改后其他项目就挂了)
我只能修改前端页面和js中的代码
回帖
  • 如果后端不改动,那相对简单的办法就是,使用jquery插件jquery.jsonp
    因为layui.table可以设置对象为数据源,
    所以可以先用jquery.jsonp获取数据,然后赋值给table
    0 回复
  • 王黎
    2018-6-19
    layui2.0前端是不需要再配置什么的,已经兼容了跨域,跨域这种问题还是需要服务器端跟你配合测试一下。前后台不沟通是没办法弄的[微笑]
    1 回复
  • 光靠前台js 是不可能的,你可以让后台同域写个中转接口
    0 回复
  • kalowei
    2018-6-13
    CORS这种方式试试行不行
    0 回复
  • 方丈
    2018-6-13
    url = 'http://192.168.31.33/page/home';

    $.getJSON(url, data, function(res){
    alert(res)
    });
    0 回复
  • First
    2018-6-13
    @红茶绿茶 但是后台都已经写完了,不会在修改了。
    0 回复
  • First
    2018-6-13
    @FLY_WEI 是服务器端吗?服务器不能做修改
    0 回复
  • First
    2018-6-13
    @方丈
    $.getJSON(loginInterface, param, function(res){
    alert(res)
    });
    请求成功,数据也返回了。。。
    报错
    No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8080' is therefore not allowed access.
    0 回复
  • 服务不支持,前端怎么折腾呀, 服务端配置是要配置的
    0 回复
  • 既然没涉及到post跨域,那就用jsonp啊,$.getJSON和$.get都支持jsonp
    0 回复
  • kalowei
    2018-6-13
    @First No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8080' is therefore not allowed access. 这个错只要在服务端配置就可以了,好像只能这么办,就是开放接口
    0 回复
  • First
    2018-6-13
    @FLY_WEI 好的,谢谢
    0 回复
  • First
    2018-6-13
    @暴躁的渣男 我使用的$.ajax({
    dataType:‘jsonp’
    callback:'',
    })
    我修改了一下本地服务器,再用本地服务器在做测试,可以在本地上用。
    0 回复
  • 最后还是要到正规服务器上的,还是要跨域,跨域的解决方法,在后端,如果后端不修改开放策略,那用ajax跨域是基本没戏的。
    除非你做一个中转,自己用php、.net、jsp写一个webclient,同步请求接口,然后你的前端异步自己的中转。这样就不用跨域了
    0 回复
  • First
    2018-6-13
    @暴躁的渣男 好的,谢谢。到时候我的项目也会部署到接口服务器上的。
    还有如何使用layui的table进行跨域请求?
    0 回复
  • 跨域请求,一般只出现在异步的post里,也不绝对。但解决方案是一样一样的。
    一般做前后端分离的项目,在架构的时候就要想到跨域问题,后端在开发的时候会把跨域的情况写进代码里。
    0 回复
  • First
    2018-6-13
    @暴躁的渣男 好的。那使用layui的数据表格table.render需要添加那些属性才能跨域请求
    0 回复
  • First
    2018-6-13
    @暴躁的渣男 好的,谢谢
    0 回复
  • First
    2018-6-13
    @暴躁的渣男

    var showData = null;
    layui.use(['element','laypage','table','laydate','form','jquery','layer'], function(){

    $.ajax({
    success:function(data){
    showData = data;
    }
    })
    var CSZTable = table.render({
    elem: '#CSZList'
    ,height: 'full-100'
    ,cellMinWidth: 100
    ,url: showData
    })

    })

    这样可以吗?但是我页面中是没有数据的,也不报错。只显示表头
    0 回复
  • 对,思路是对的。代码还需要修改
    0 回复
  • First
    2018-6-15
    @暴躁的渣男 好的,谢谢
    0 回复
  • First
    2018-6-20
    @王黎 好的,谢谢。 目前layui直接用url请求后台,后台进行配置就可以了?
    0 回复
  • zhang10966
    2018-9-11
    接口为什么莫名的加上了请求项目的路径
    效果:http://localhost:63342/Platform/http//192.168.31.44:8010/api/Login/CheckLogin
    0 回复
  • zhang10966
    2018-9-11
    接口为什么莫名的加上了请求项目的路径
    效果:http://localhost:63342/Platform/http//192.168.31.44:8010/api/Login/CheckLogin
    0 回复