为了账号安全,请及时绑定邮箱和手机立即绑定

跨域获取html时报错:Uncaught SyntaxError: Unexpected token

跨域获取html时报错:Uncaught SyntaxError: Unexpected token

弑天下 2019-02-12 17:12:40
需求如下:通过前端抓取自己segmentfault主页的前几篇文章请求部分的代码如下:$.ajax({        url: sfUrl,        dataType: 'jsonp',        success: function(data) {            parseArticle(data);        },        error: function(err) {            console.log(err)        }    })运行结果如下:Uncaught SyntaxError: Unexpected token <见下图(第二行打出的是err信息)从Sources与Network的信息来看数据http事务是完成了数据也返回了个人认为是解析出现了问题,但是仍然不知道怎么解决。问题如下为什么会报错怎样解决这个问题
查看完整描述

1 回答

?
拉风的咖菲猫

TA贡献1995条经验 获得超2个赞

问题解决了。


1.为什么会报错

JSONP返回的数据是应该是形如:


callback_function(html); //在上例中callback_function()就是success

然而由于返回的数据是html,所以在执行、callback_function(html)的时候,由于html的格式形如


<!DOCTYPE html>

<html>

<head>

    <meta charset="UTF-8">

    <title>Document</title>

</head>

<body>

    

</body>

</html>

这个样所作为一个参数执行就会报错,就是上面出现的:Uncaught SyntaxError: Unexpected token <


2.怎么解决

由于后台传回的就是html,这是我们不可改变的,而且向直接将html结构作为参数是总会出问题的 ,所以只能换一种跨域方式了。


查看完整回答
反对 回复 2019-02-16
  • 1 回答
  • 0 关注
  • 814 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号