搜索

首页  >  问答  >  正文

javascript - 跨域,我的jsonp方式对不,为什么一直报错啊


这个ajax请求收的路径,对不?

我的跨域方式写的对不,为什么一直控制台一直报错

高洛峰高洛峰2718 天前729

全部回复(6)我来回复

  • 迷茫

    迷茫2017-07-05 10:43:03

    Uncaught SyntaxError: Unexpected token : 类似这种错误就是返回的json数据没用“(”和“)”小括号包起来或者前面没加callback值而引起的。

    回复
    0
  • 黄舟

    黄舟2017-07-05 10:43:03

    服务端程序有问题,js执行出错

    回复
    0
  • 我想大声告诉你

    我想大声告诉你2017-07-05 10:43:03

    设置jsonp参数,同时后台返回的数据需要包裹在你传的jsonp变量里面
    前端:

    $.ajax({
        url: 'xx',
        dataType: 'jsonp',
        jsonp: 'callback',
        ....
    });

    后台
    callback(返回的数据)

    回复
    0
  • 高洛峰

    高洛峰2017-07-05 10:43:03

    url添加一个回调参数:jsoncallback=?,问号程序会自动生成相应的参数

    后端程序接受这个参数,并将返回的数据包裹在这个回调函数中

    eg:
    PHP后端写法
    
    $jsoncallback = $_GET['jsoncallback'];
    
    $result = json_encode($data);
    
    echo  $jsoncallback."(".$result.")";//后端要以这种格式返回数据才能实现跨域
    exit;

    你的返回值没有包裹在或回调函数中

    回复
    0
  • PHP中文网

    PHP中文网2017-07-05 10:43:03

    jsonp不应该是js里面的src引入,然后在js里面调用callback()

    回复
    0
  • 滿天的星座

    滿天的星座2017-07-05 10:43:03

    JQ中jsonp的话,要在查询字符串中加一个callback=?字段

    回复
    0
  • 取消回复